{
  "openapi": "3.0.4",
  "info": {
    "title": "Collective2 WhiteLabel API",
    "description": "<p>📖 For full documentation, see the \n   <a href=\"https://trade.collective2.com/c2-api\">Collective2 API Documentation</a>.\n</p>",
    "termsOfService": "https://trade.collective2.com/terms-of-service.html",
    "contact": {
      "name": "C2 Support",
      "url": "https://support.collective2.com",
      "email": "help@collective2.com"
    },
    "version": "v4"
  },
  "servers": [
    {
      "url": "https://api4-wl.collective2.com"
    }
  ],
  "paths": {
    "/Autotrade/GetAutotradedStrategies": {
      "get": {
        "summary": "GetAutotradedStrategies",
        "description": "Request the Autotraded strategies of the person. Paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotradedStrategies_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "Account",
            "in": "query",
            "description": "The Autotrade account (optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAutotradedStrategiesResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutotraders": {
      "get": {
        "summary": "GetAutotraders",
        "description": "A list of Autotraders. Paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotraders_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "(Optional) StrategyId filter",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "(optional) The Autotrade BrokerId",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "(optional) The White Label Site Id",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAutotradersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutotradeSettings": {
      "get": {
        "summary": "GetAutotradeSettings",
        "description": "The Autotrade Settings. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotradeSettings_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "Account",
            "in": "query",
            "description": "(Optional) Account",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAutotradeSettingsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/SetAutotradeSettings": {
      "put": {
        "summary": "SetAutotradeSettings",
        "description": "Enable or disable Autotrade or Autosync in the specified account.",
        "operationId": "C2_API_Autotrade/SetAutotradeSettings_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetAutotradeSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanResponseBase"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetDashBoard": {
      "get": {
        "summary": "GetDashBoard",
        "description": "Request the Person's Autotraded strategies and a performance summary. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetDashBoard_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "Account",
            "in": "query",
            "description": "The brokerage Account",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDashBoardResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetSimResults": {
      "get": {
        "summary": "GetSimResults",
        "description": "Return SIM trading results for all subscribers who are using “free sims.”. Non-Paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetSimResults_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The WhiteLabel SiteId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ActiveOnly",
            "in": "query",
            "description": "Set to FALSE to get the full history of all Simulation results (optional). Default is TRUE",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "MaxAccountDays",
            "in": "query",
            "description": "The maximum account number of days to include (optional). Maximum default value is 365 days",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "MinLoginDays",
            "in": "query",
            "description": "The minimum number of days since the user logged in (optional)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSimResultsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/SearchAccounts": {
      "get": {
        "summary": "SearchAccounts",
        "description": "Request a list of Autotrade and Papertrade accounts. Partial matches will be returned. Paginated endpoint. Only visible to the account owner or White-label site owner",
        "operationId": "C2_API_Autotrade/SearchAccounts_GET",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "The Autotrade account (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "The Autotrade BrokerId (optional)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "FirstName",
            "in": "query",
            "description": "The FirstName (optional). Not case-sensitive",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LastName",
            "in": "query",
            "description": "The FirstName (optional). Not case-sensitive",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Email",
            "in": "query",
            "description": "The Email (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "CountryCode",
            "in": "query",
            "description": "The person's country code. Not case-sensitive (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IPAddress",
            "in": "query",
            "description": "The person's last known IP address (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Phone",
            "in": "query",
            "description": "The Phone number (optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutotradeActiveOrders": {
      "get": {
        "summary": "GetAutotradeActiveOrders",
        "description": "Request the Working orders of the Account. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotradeActiveOrders_GET",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "The Brokerage Account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "The PersonId owning the account",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "StrategyId",
            "in": "query",
            "description": "(Optional) StrategyId filter",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetActiveOrdersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutotradeHistoricalOrders": {
      "get": {
        "summary": "GetAutotradeHistoricalOrders",
        "description": "Request the historical orders of the Account. Paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotradeHistoricalOrders_GET",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "Brokerage Account filter",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "The PersonId owning the account",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "BrokerId (Optional)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "StrategyId",
            "in": "query",
            "description": "StrategyId (Optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "OrderStatus",
            "in": "query",
            "description": "'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace (Optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "StartDate (Optional)",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "EndDate (Optional)",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAutotradeHistoricalOrdersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutoTradeOpenPositions": {
      "get": {
        "summary": "GetAutoTradeOpenPositions",
        "description": "Request the open positions of the Account. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutoTradeOpenPositions_GET",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "Brokerage Account filter",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StrategyId",
            "in": "query",
            "description": "(Optional) StrategyId filter",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOpenPositionsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/NewAutotradeOrder": {
      "post": {
        "summary": "NewAutotradeOrder",
        "description": "Send a new closing order to the specified account. Only Stop and Limit OrderTypes are supported. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/NewAutotradeOrder_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewAutotradeOrder"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewAutotradeOrderResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/CancelAutotradeOrder": {
      "delete": {
        "summary": "CancelAutotradeOrder",
        "description": "Cancel an order in the specified account. Auto Stop-Loss orders are not currently supported. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/CancelAutotradeOrder_DELETE",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "The Autotrade account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "The OrderID to be cancelled",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelAutotradeOrderResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/ReplaceAutotradeOrder": {
      "put": {
        "summary": "ReplaceAutotradeOrder",
        "description": "Cancel/Replace an open closing order in the specified account. Only strategy and manual exit orders are currently supported.",
        "operationId": "C2_API_Autotrade/ReplaceAutotradeOrder_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceAutotradeOrder"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplaceAutotradeOrderResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetBrokers": {
      "get": {
        "summary": "GetBrokers",
        "description": "Get a list of Autotrade brokers. Non-Paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetBrokers_GET",
        "parameters": [
          {
            "name": "IncludeDisabled",
            "in": "query",
            "description": "Include the disabled brokers. Default is FALSE. (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetBrokersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/SearchAutotradedAccounts": {
      "get": {
        "summary": "SearchAutotradedAccounts",
        "description": "A list of Autotraded accounts. You must provide at least one parameter. Paginated endpoint.",
        "operationId": "C2_API_Autotrade/SearchAutotradedAccounts_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "(Optional) StrategyId filter",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "(Optional) The Autotrade BrokerId",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "AutoSyncEnabled",
            "in": "query",
            "description": "(Optional) AutoSync status filter",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "AutoTradeEnabled",
            "in": "query",
            "description": "(Optional) TRUE if the account has Autotrading enabled (i.e. it usually gets disabled on external orders)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "AutoTradingNow",
            "in": "query",
            "description": "(Optional) TRUE if the account is currently Autotrading",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "(Optional) StartDate",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "(Optional) EndDate",
            "schema": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchAutotradedAccountsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetAutotradeStats": {
      "get": {
        "summary": "GetAutotradeStats",
        "description": "Request the historical Autotraded accounts statistics. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetAutotradeStats_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The WhiteLabelSiteId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "GeoSite",
            "in": "query",
            "description": "The GeoSite (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "The BrokerId (optional)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "SecurityType",
            "in": "query",
            "description": "SecurityType filter. e.g. 'CS', 'FUT', 'OPT', 'FOR' (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Disabled",
            "in": "query",
            "description": "Autotrade is disabled filter (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "AutoSync",
            "in": "query",
            "description": "AutoSync filter (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "ManualConfirmation",
            "in": "query",
            "description": "ManualConfirmation filter (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "BrokerEnabled",
            "in": "query",
            "description": "BrokerEnabled filter (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "StartDate (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "EndDate (optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAutotradeStatsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/GetPendingAccounts": {
      "get": {
        "summary": "GetPendingAccounts",
        "description": "Get the live accounts pending Autotrade approval. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/GetPendingAccounts_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The WhiteLabelSiteId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "GeoSite",
            "in": "query",
            "description": "The GeoSite (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "The BrokerId (optional)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "SecurityType",
            "in": "query",
            "description": "(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPendingAccountsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/StartAutotrade": {
      "post": {
        "summary": "StartAutotrade",
        "description": "Start or modify an Autotrade setup. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/StartAutotrade_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartAutotrade"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/StopAutotrade": {
      "delete": {
        "summary": "StopAutotrade",
        "description": "Stop a autotrade setup. Non-paginated endpoint.",
        "operationId": "C2_API_Autotrade/StopAutotrade_DELETE",
        "parameters": [
          {
            "name": "Account",
            "in": "query",
            "description": "The Autotrade account",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "BrokerId",
            "in": "query",
            "description": "The BrokerId",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The StrategyId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "LeavePositionsOpen",
            "in": "query",
            "description": "TRUE to leave positions open in the autotraded account. Default is FALSE",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TerminateStrategySubscription",
            "in": "query",
            "description": "TRUE to stop the Strategy subscription. Default is FALSE",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Autotrade/ResetPaperTrade": {
      "put": {
        "summary": "ResetPaperTrade",
        "description": "Reset the specified PaperTrade account.",
        "operationId": "C2_API_Autotrade/ResetPaperTrade_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPaperTrade"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanResponseBase"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/Hello": {
      "post": {
        "summary": "Hello",
        "description": "Test endpoint that can be used to test your API Key, RateLimits, Headers, etc",
        "operationId": "C2_API_General/Hello_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Hello"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HelloResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetAccessKey": {
      "get": {
        "summary": "GetAccessKey",
        "description": "Get the requester's APIKey Role and expiration",
        "operationId": "C2_API_General/GetAccessKey_GET",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAccessKeyResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/AddProfile": {
      "post": {
        "summary": "AddProfile",
        "description": "Create a new C2 profile. Non-paginated endpoint.",
        "operationId": "C2_API_General/AddProfile_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddProfile"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddProfileResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/UpdateProfile": {
      "put": {
        "summary": "UpdateProfile",
        "description": "Update an existing C2 profile. Not available. Please contact us if you need this endpoint.",
        "operationId": "C2_API_General/UpdateProfile_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProfile"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddProfileResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetProfile": {
      "get": {
        "summary": "GetProfile",
        "description": "Request details of a Person. Public profiles are visible to all. Private profile information will only be visible to the account owner. Non-paginated endpoint.",
        "operationId": "C2_API_General/GetProfile_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId. If omitted, the requester's information will be returned.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "IncludeIconInResponse",
            "in": "query",
            "description": "(Optional) Set to TRUE to include the profile icon in the response.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/SearchProfiles": {
      "get": {
        "summary": "SearchProfiles",
        "description": "Search profiles using any field combination. Partial matches will be returned. Paginated endpoint. Only Admins, Geo and White-Label Admins can access this endpoint. If you're a GeoSite admin, you will see all your GeoSite members including your WhiteLabel members. If you're a WhiteLabel admin, you will see your WhiteLabel members, but not other GeoSite members. If you're neither, you will get a 403 error.",
        "operationId": "C2_API_General/SearchProfiles_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "FirstName",
            "in": "query",
            "description": "The FirstName. Not case-sensitive (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LastName",
            "in": "query",
            "description": "The FirstName. Not case-sensitive (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Email",
            "in": "query",
            "description": "The Email. Not case-sensitive (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id (optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "CountryCode",
            "in": "query",
            "description": "The person's country code. Not case-sensitive. (optional) See https://en.wikipedia.org/wiki/ISO_3166-2",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DivisionCode",
            "in": "query",
            "description": "The person's subdivision (e.g. provinces or states). Not case-sensitive. (optional) See https://en.wikipedia.org/wiki/ISO_3166-2",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IPAddress",
            "in": "query",
            "description": "The person's last known IP address (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Phone",
            "in": "query",
            "description": "The verified Phone number (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsAlive",
            "in": "query",
            "description": "The Person's Status (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "IncludeIconInResponse",
            "in": "query",
            "description": "(Optional) Set to TRUE to include the profile icon in the response.",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          },
          {
            "name": "IsEmailValidated",
            "in": "query",
            "description": "The Person's email validation status (optional)",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetInvestorPlanSubscriptions": {
      "get": {
        "summary": "GetInvestorPlanSubscriptions",
        "description": "Request details of a Person's strategy subscriptions. Paginated endpoint",
        "operationId": "C2_API_General/GetInvestorPlanSubscriptions_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ActiveOnly",
            "in": "query",
            "description": "Set to FALSE to get all transactions (optional). Default is TRUE",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetManagerPlanSubscriptions": {
      "get": {
        "summary": "GetManagerPlanSubscriptions",
        "description": "Request details of a Person's strategy manager subscriptions. Paginated endpoint",
        "operationId": "C2_API_General/GetManagerPlanSubscriptions_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ActiveOnly",
            "in": "query",
            "description": "Set to FALSE to get all transactions (optional). Default is TRUE",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscriptionsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetSubscribedStrategies": {
      "get": {
        "summary": "GetSubscribedStrategies",
        "description": "Request the subscribed strategies of the person. Paginated endpoint.",
        "operationId": "C2_API_General/GetSubscribedStrategies_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ActiveOnly",
            "in": "query",
            "description": "Set to FALSE to get all transactions (optional). Default is TRUE",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscribedStrategiesResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetWhiteLabelSiteUsers": {
      "get": {
        "summary": "GetWhiteLabelSiteUsers",
        "description": "Get all members of a WL site. Only admins and WhiteLabel admins can access this endpoint. Paginated endpoint.",
        "operationId": "C2_API_General/GetWhiteLabelSiteUsers_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWhiteLabelSiteUsersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetKYCScore": {
      "get": {
        "summary": "GetKYCScore",
        "description": "Request the KYC score of a Person. Only White Label Sites and GeoSites have access to this endpoint. Non-paginated endpoint.",
        "operationId": "C2_API_General/GetKYCScore_GET",
        "parameters": [
          {
            "name": "UserToken",
            "in": "query",
            "description": "The private user token (optional). GeoSites must provide this value",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId (optional). WhiteLabel sites must provide this value",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KYCScoreResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/UpdateKYCScore": {
      "put": {
        "summary": "UpdateKYCScore",
        "description": "Update the KYC score of a Person. Only Geo and White Label Sites have access to this endpoint. Non-paginated endpoint.",
        "operationId": "C2_API_General/UpdateKYCScore_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKYCScore"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KYCScoreResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetKYCInfo": {
      "get": {
        "summary": "GetKYCInfo",
        "description": "Request the KYC information of a Person. Only Geo and White Label Sites have access to this endpoint. Non-paginated endpoint.",
        "operationId": "C2_API_General/GetKYCInfo_GET",
        "parameters": [
          {
            "name": "UserToken",
            "in": "query",
            "description": "The private user token. Only White Label Sites have this value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KYCInfoResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/AddKYCInfo": {
      "post": {
        "summary": "AddKYCInfo",
        "description": "Add/Update the KYC info of a Person. Each successful request for a PersonID will replace the old data. Only Geo and White Label Site admins have access to this endpoint.",
        "operationId": "C2_API_General/AddKYCInfo_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddKYCInfo"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KYCScoreResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetPhoneAlreadyExists": {
      "get": {
        "summary": "GetPhoneAlreadyExists",
        "description": "Check if a verified phone number already exists on C2. Non-paginated endpoint.",
        "operationId": "C2_API_General/GetPhoneAlreadyExists_GET",
        "parameters": [
          {
            "name": "Phone",
            "in": "query",
            "description": "The phone number. Phone must always be expressed in full international phone number format, e.g. +XXXYYYYYYYYY, no zeroes allowed after the country code. Country code must be prefixed with a plus sign.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPhoneAlreadyExistsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/General/GetWlInstrumentationExport": {
      "get": {
        "summary": "GetWlInstrumentationExport",
        "description": "Export instrumentation data for a White Label site, including session events, subscriptions, autotrade account stability, and executions within the requested time window. These are SSO/login handshakes, not full pageview analytics. Only WhiteLabel admins can access this endpolong. Non-Paginated endpolong.",
        "operationId": "C2_API_General/GetWlInstrumentationExport_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "FromWhen",
            "in": "query",
            "description": "(Optional) The start of the export window as a Unix timestamp (seconds). If omitted, DaysBack is used to calculate the window start.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ToWhen",
            "in": "query",
            "description": "(Optional) The end of the export window as a Unix timestamp (seconds). Defaults to now if omitted.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "DaysBack",
            "in": "query",
            "description": "(Optional) The lookback window in days, used when FromWhen is omitted. Default: 30.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "(Optional) Filter results to a single subscriber by PersonId.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SystemId",
            "in": "query",
            "description": "(Optional) Filter results to a single strategy by SystemId.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SessionLimit",
            "in": "query",
            "description": "(Optional) Maximum number of session events to return. Default: 2000, max: 5000.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SubscriptionLimit",
            "in": "query",
            "description": "(Optional) Maximum number of subscriptions to return. Default: 2000, max: 5000.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ExecutionLimit",
            "in": "query",
            "description": "(Optional) Maximum number of executions to return. Default: 1000, max: 5000.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWlInstrumentationExportResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyDetails": {
      "get": {
        "summary": "GetStrategyDetails",
        "description": "Request the strategy statistics. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyDetails_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The Strategy ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStrategyDetailsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/SearchStrategies": {
      "get": {
        "summary": "SearchStrategies",
        "description": "Request a list of strategies available to the user. Paginated endpoint.",
        "operationId": "C2_API_Strategies/SearchStrategies_GET",
        "parameters": [
          {
            "name": "SecurityType",
            "in": "query",
            "description": "(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CreatedBeforeDate",
            "in": "query",
            "description": "(optional) Filter used to search old stategies. The date must be in ISO 8601 Date Format.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StrategyName",
            "in": "query",
            "description": "Search strategies on name (optional). Partial matches will be returned. Wildcards % and _ are supported",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StrategyOwnerPersonId",
            "in": "query",
            "description": "(optional) The C2 PersonId",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "(optional) The White Label site Id",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "IsTradeOwnSystem",
            "in": "query",
            "description": "(optional) Filter on whether Strategy owner Trades his Own Strategy",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchStrategiesResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetLeaderBoard": {
      "get": {
        "summary": "GetLeaderBoard",
        "description": "Request the curated public leaderboard of strategies. Non-Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetLeaderBoard_GET",
        "parameters": [
          {
            "name": "SecurityType",
            "in": "query",
            "description": "(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchStrategiesResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetWatchLists": {
      "get": {
        "summary": "GetWatchLists",
        "description": "Request all watchlists available to the user. Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetWatchLists_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWatchListsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetWatchListMembers": {
      "get": {
        "summary": "GetWatchListMembers",
        "description": "Request a list of strategies in the watchlist. Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetWatchListMembers_GET",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WatchListId",
            "in": "query",
            "description": "The WatchList Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetWatchListMembersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/ManageWatchList": {
      "post": {
        "summary": "ManageWatchList",
        "description": "Edit watchlists and their members. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/ManageWatchList_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManageWatchList"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanResponseBase"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "ManageWatchList",
        "description": "Edit watchlists and their members. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/ManageWatchList_DELETE",
        "parameters": [
          {
            "name": "PersonId",
            "in": "query",
            "description": "The C2 PersonId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WatchListId",
            "in": "query",
            "description": "The WatchList Id. Required except when ModificationAction=ADD and ModificationSource=LIST",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ModificationSource",
            "in": "query",
            "description": "The Type of list to modify. Valid values are 'LIST' (for the whole watchlist), 'MEMBER' (for the list items)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ModificationAction",
            "in": "query",
            "description": "The change to make. Valid values are: ADD, DELETE",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The Strategy Id. Only required when ModificationSource=MEMBER",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WatchListName",
            "in": "query",
            "description": "The name of the watchlist. Only required when ModificationAction=ADD and ModificationSource=LIST",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanResponseBase"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetSubscribers": {
      "get": {
        "summary": "GetSubscribers",
        "description": "Request the list of subscribers of a strategy and their subscrition history. Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetSubscribers_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The C2 StrategyId",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "ActiveOnly",
            "in": "query",
            "description": "Set to True to include only currently active subscribers. Default is False",
            "schema": {
              "type": "boolean",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscribersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetSubscriptionRevenue": {
      "get": {
        "summary": "GetSubscriptionRevenue",
        "description": "Request the subscriber revenue of a strategy. Paginated endpoint. You must provide at least one parameter other than Start/End date.",
        "operationId": "C2_API_Strategies/GetSubscriptionRevenue_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The C2 StrategyId (Optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "StartDate (Optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "EndDate (Optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StrategyOwnerPersonId",
            "in": "query",
            "description": "The Strategy Owner's PersonId (Optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SubscriberPersonId",
            "in": "query",
            "description": "The Subscriber's PersonId (Optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label Site Id (Optional)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSubscribersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/NewStrategyOrder": {
      "post": {
        "summary": "NewStrategyOrder",
        "description": "Send a new order for the strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/NewStrategyOrder_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewStrategyOrder"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewSignalResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/CancelStrategyOrder": {
      "delete": {
        "summary": "CancelStrategyOrder",
        "description": "Cancel a order. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/CancelStrategyOrder_DELETE",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The Strategy ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SignalId",
            "in": "query",
            "description": "The Signal ID to be cancelled",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelSignalResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/ReplaceStrategyOrder": {
      "put": {
        "summary": "ReplaceStrategyOrder",
        "description": "Send a cancel/replace a order for the strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/ReplaceStrategyOrder_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceStrategyOrder"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplaceSignalResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyActiveOrders": {
      "get": {
        "summary": "GetStrategyActiveOrders",
        "description": "Request the open orders for the strategies. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyActiveOrders_GET",
        "parameters": [
          {
            "name": "StrategyIds",
            "in": "query",
            "description": "A list of Strategy IDs",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "name": "SecurityType",
            "in": "query",
            "description": "(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderType",
            "in": "query",
            "description": "(optional) OrderType filter. e.g. '1' = Market, '2' = Limit, '3' = Stop",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetActiveOrdersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyOpenPositions": {
      "get": {
        "summary": "GetStrategyOpenPositions",
        "description": "Request the open positions for the strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyOpenPositions_GET",
        "parameters": [
          {
            "name": "StrategyIds",
            "in": "query",
            "description": "A list of Strategy IDs",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64"
              }
            }
          },
          {
            "name": "SecurityType",
            "in": "query",
            "description": "(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOpenPositionsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyHistoricalOrders": {
      "get": {
        "summary": "GetStrategyHistoricalOrders",
        "description": "Returns the historical orders of the strategy. Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyHistoricalOrders_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "StrategyId (optional: StrategyId or SignalId must be present)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "SignalId",
            "in": "query",
            "description": "SignalId (optional: StrategyId or SignalId must be present)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "OrderStatus",
            "in": "query",
            "description": "Optional. Available values: '2' = Filled, '4' = Canceled, 'C' = Expired",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "UTC StartDate (Optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "UTC EndDate (Optional)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetHistoricalOrdersResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyHistoricalClosedTrades": {
      "get": {
        "summary": "GetStrategyHistoricalClosedTrades",
        "description": "Returns the historical closed trades of the strategy. The difference between an order and a trade is trades group orders on 'tradeid', much like you would see on our web site. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyHistoricalClosedTrades_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The StrategyId",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "PersonId",
            "in": "query",
            "description": "(optional) The PersonId who will view the information. Available to WhiteLabel and GeoSite admins only. Default is the requester's PersonId",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "CommissionPlan",
            "in": "query",
            "description": "(Optional) The commission plan to use. The default web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStrategyHistoricalClosedTradesResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyHistoricalEquity": {
      "get": {
        "summary": "GetStrategyHistoricalEquity",
        "description": "Returns monthly returns for the strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyHistoricalEquity_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The Strategy ID to get data for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "CommissionPlan",
            "in": "query",
            "description": "(Optional) The commission plan to use. The default C2 web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStrategyHistoricalEquityResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyHistoricalDailyEquity": {
      "get": {
        "summary": "GetStrategyHistoricalDailyEquity",
        "description": "Returns daily returns for the strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyHistoricalDailyEquity_GET",
        "parameters": [
          {
            "name": "StrategyId",
            "in": "query",
            "description": "The Strategy ID to get data for",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "CommissionPlan",
            "in": "query",
            "description": "(Optional) The commission plan to use. The default C2 web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStrategyHistoricalEquityResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/AddStrategy": {
      "post": {
        "summary": "AddStrategy",
        "description": "Create a new, empty, publicly visible strategy. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/AddStrategy_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddStrategy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddStrategyResponse"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/UpdateStrategy": {
      "put": {
        "summary": "UpdateStrategy",
        "description": "Modify a strategy. Not available yet. Please contact us if you ened this endpoint. Non-paginated endpoint.",
        "operationId": "C2_API_Strategies/UpdateStrategy_PUT",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStrategy"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateStrategyResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/v2/Strategies/SetDesiredPositions": {
      "post": {
        "summary": "SetDesiredPositionsV2",
        "description": "The list of positions that must exist in the strategy. All C2 positions not in this list will be closed with market orders. Non-paginated endpoint.",
        "operationId": "C2_API_v2/Strategies/SetDesiredPositions_POST",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetDesiredPositionsV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetDesiredPositionsV2Response"
                }
              }
            }
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetSupportedSymbols": {
      "get": {
        "summary": "GetSupportedSymbols",
        "description": "Request a list of supported Futures and Forex symbols. All US stocks > $5 and all US equity options are supported by default so they will not be sent in the response. We will include a few non-standard stock symbols that require special C2 symbology. Paginated and cached endpoint.",
        "operationId": "C2_API_Strategies/GetSupportedSymbols_GET",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetSupportedSymbolsResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetRule575Status": {
      "get": {
        "summary": "GetRule575Status",
        "description": "Returns Rule 575 exception fills and rollup summaries for a White Label site. Only WhiteLabel admins can access this endpoint. Non-Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetRule575Status_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "Days",
            "in": "query",
            "description": "(Optional) Number of days back to include. Falls back to days_back if not supplied. Default: 30",
            "schema": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            }
          },
          {
            "name": "Session",
            "in": "query",
            "description": "(Optional) Trading session filter. Accepted values: all, RTH, ETH. Default: all",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GroupBy",
            "in": "query",
            "description": "(Optional) Dimension to group the rule575 rollup by. Accepted values: strategy, manager, instrument",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRule575StatusResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    },
    "/Strategies/GetStrategyMuxStatus": {
      "get": {
        "summary": "GetStrategyMuxStatus",
        "description": "Get the signal multiplexer status report for a family of child strategies, including position sync state, exception counts, and per-variant sync details. Only WhiteLabel admins can access this endpoint. Non-Paginated endpoint.",
        "operationId": "C2_API_Strategies/GetStrategyMuxStatus_GET",
        "parameters": [
          {
            "name": "WhiteLabelSiteId",
            "in": "query",
            "description": "The White Label site Id",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "FamilyGuid",
            "in": "query",
            "description": "(Optional) The multiplexer family GUID to retrieve status for",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "VariantGuid",
            "in": "query",
            "description": "(Optional) The variant (child strategy) GUID to retrieve per-symbol sync details for. Omit or set to 0 to return all variants without symbol-level detail.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          },
          {
            "name": "DriftGrace",
            "in": "query",
            "description": "(Optional) When provided, 'sync_details' returns per-symbol detail for that variant.",
            "schema": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStrategyMuxStatusResponse"
                }
              }
            }
          },
          "304": {
            "description": "NotModified: Used when HTTP caching headers are in play. Only sent in response to If-Modified-Since headers."
          },
          "400": {
            "description": "BadRequest: Your request is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Your API key is wrong.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: You do not have access rights to the content. Unlike 401, your identity is known to the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "404": {
            "description": "NotFound: When a non-existent endpoint or resource is requested (bad URL or requested data was not found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "406": {
            "description": "NotAcceptable: If incorrect Accept header was provided as part of the request. Accept header must be 'application/json'.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: When the request is well-formed and valid, but conflicts with the current resource state in a way that prevents processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "429": {
            "description": "TooManyRequests: When a request is rejected due to rate limits.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "500": {
            "description": "InternalServerError: Used for internal errors. No details are provided to clients for security reasons. Please contact us at help@collective2.com if you see this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          },
          "503": {
            "description": "ServiceUnavailable: We're temporarily offline for maintenance. Please try again later.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatus"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccessKeyDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "AccessKey": {
            "required": [
              "AccessKey"
            ],
            "type": "string",
            "description": "The API AccessKey",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId assigned to the AccessKey",
            "format": "int64"
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The FirstName. Not case-sensitive",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The FirstName. Not case-sensitive",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The Email. Not case-sensitive",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site Id",
            "format": "int64",
            "nullable": true
          },
          "Role": {
            "required": [
              "Role"
            ],
            "type": "string",
            "description": "The Role assigned to the AccessKey",
            "nullable": true
          },
          "Message": {
            "required": [
              "Message"
            ],
            "type": "string",
            "description": "A human-frienly message",
            "nullable": true
          },
          "CreateDate": {
            "required": [
              "CreateDate"
            ],
            "type": "string",
            "description": "The UTC DateTime when the key was created",
            "format": "date-time",
            "nullable": true
          },
          "DeleteDate": {
            "required": [
              "DeleteDate"
            ],
            "type": "string",
            "description": "The UTC DateTime when the key was deleted",
            "format": "date-time",
            "nullable": true
          },
          "Comment": {
            "required": [
              "Comment"
            ],
            "type": "string",
            "description": "A user comment about the key",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage/SIM/Papertrade Account",
            "nullable": true
          },
          "BrokerName": {
            "required": [
              "BrokerName"
            ],
            "type": "string",
            "description": "The broker name",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The broker ID",
            "format": "int64",
            "nullable": true
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The FirstName. Not case-sensitive",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The FirstName. Not case-sensitive",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The Email",
            "nullable": true
          },
          "Language": {
            "required": [
              "Language"
            ],
            "type": "string",
            "description": "The person's preferred language",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label SiteId",
            "format": "int64",
            "nullable": true
          },
          "GeoSite": {
            "required": [
              "GeoSite"
            ],
            "type": "string",
            "description": "The account GeoSite",
            "nullable": true
          },
          "CountryCode": {
            "required": [
              "CountryCode"
            ],
            "type": "string",
            "description": "The person's country code",
            "nullable": true
          },
          "DivisionCode": {
            "required": [
              "DivisionCode"
            ],
            "type": "string",
            "description": "The person's division (usually the state) code",
            "nullable": true
          },
          "AuthenticatedDate": {
            "required": [
              "AuthenticatedDate"
            ],
            "type": "string",
            "description": "When the Account was Authenticated. Some broker connections (e.g. CQG, Rithmic, ETNA, ORBIS, StoneX, Tradovate, TransACT) require the broker to approve the account, while others (e.g. IB) don't, in which case the date will be when the client setup Autotrading.  NULL if never approved by the broker and it is a broker that requires account approval",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountNAVDTO": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage Account",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "The StartDate of the report",
            "format": "date-time"
          },
          "EndDate": {
            "required": [
              "EndDate"
            ],
            "type": "string",
            "description": "The EndDate of the report",
            "format": "date-time"
          },
          "TotalDataDays": {
            "required": [
              "TotalDataDays"
            ],
            "type": "integer",
            "description": "The total number of days where we have data",
            "format": "int32"
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The base currency of the account",
            "nullable": true
          },
          "StartNAV": {
            "required": [
              "StartNAV"
            ],
            "type": "number",
            "description": "The Start NAV of the report",
            "format": "double"
          },
          "EndNAV": {
            "required": [
              "EndNAV"
            ],
            "type": "number",
            "description": "The End NAV of the report",
            "format": "double"
          },
          "Deposits": {
            "required": [
              "Deposits"
            ],
            "type": "number",
            "description": "The total deposits in the account during the report period",
            "format": "double"
          },
          "Withdrawals": {
            "required": [
              "Withdrawals"
            ],
            "type": "number",
            "description": "The total withdrawals in the account during the report period",
            "format": "double"
          },
          "Return1Month": {
            "required": [
              "Return1Month"
            ],
            "type": "number",
            "description": "1 month percent return for the account",
            "format": "double"
          },
          "Return3Month": {
            "required": [
              "Return3Month"
            ],
            "type": "number",
            "description": "3 month percent return for the account",
            "format": "double"
          },
          "Return12Month": {
            "required": [
              "Return12Month"
            ],
            "type": "number",
            "description": "12 month percent return for the account. This will be annualized if there is less than 12 months of data available",
            "format": "double"
          },
          "ReturnEntirePeriod": {
            "required": [
              "ReturnEntirePeriod"
            ],
            "type": "number",
            "description": "Percent return for the entire specified period",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "AccountsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "AddKYCInfo": {
        "type": "object",
        "properties": {
          "UserToken": {
            "required": [
              "UserToken"
            ],
            "type": "string",
            "description": "The private user token supplied by C2",
            "nullable": true
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's verified first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's verified last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's verified email. This may be different than the c2 email",
            "nullable": true
          },
          "Phone": {
            "required": [
              "Phone"
            ],
            "type": "string",
            "description": "The person's telephone",
            "nullable": true
          },
          "IsPhoneVerified": {
            "required": [
              "IsPhoneVerified"
            ],
            "type": "boolean",
            "description": "True if the the person's telephone is verified",
            "nullable": true
          },
          "Street": {
            "required": [
              "Street"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "City": {
            "required": [
              "City"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "Province": {
            "required": [
              "Province"
            ],
            "type": "string",
            "description": "The verified address state/county/province",
            "nullable": true
          },
          "PostCode": {
            "required": [
              "PostCode"
            ],
            "type": "string",
            "description": "The verified address zip/postal code",
            "nullable": true
          },
          "Country": {
            "required": [
              "Country"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "PhotoId1Title": {
            "required": [
              "PhotoId1Title"
            ],
            "type": "string",
            "description": "PhotoID title (optional)",
            "nullable": true
          },
          "PhotoId2Title": {
            "required": [
              "PhotoId2Title"
            ],
            "type": "string",
            "description": "PhotoID title (optional)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddPersonResponseDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "CSRF": {
            "required": [
              "CSRF"
            ],
            "type": "string",
            "description": "The CSRF to be used by the White Label Site. Only send in response when Person was created by a White Label Site admin",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddProfile": {
        "type": "object",
        "properties": {
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's last name",
            "nullable": true
          },
          "ScreenName": {
            "required": [
              "ScreenName"
            ],
            "type": "string",
            "description": "The person's desired screen name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's email. This will be the username when logging in to C2",
            "nullable": true
          },
          "Password": {
            "required": [
              "Password"
            ],
            "type": "string",
            "description": "The desired password to login to C2",
            "nullable": true
          },
          "Language": {
            "required": [
              "Language"
            ],
            "type": "string",
            "description": "The person's preferred language. See https://en.wikipedia.org/wiki/ISO_639-3",
            "nullable": true
          },
          "CountryCode": {
            "required": [
              "CountryCode"
            ],
            "type": "string",
            "description": "The person's country code. See https://en.wikipedia.org/wiki/ISO_3166-2",
            "nullable": true
          },
          "DivisionCode": {
            "required": [
              "DivisionCode"
            ],
            "type": "string",
            "description": "The person's subdivision (e.g. provinces or states). See https://en.wikipedia.org/wiki/ISO_3166-2",
            "nullable": true
          },
          "City": {
            "required": [
              "City"
            ],
            "type": "string",
            "description": "The person's city (optional)",
            "nullable": true
          },
          "Street": {
            "required": [
              "Street"
            ],
            "type": "string",
            "description": "The person's street (optional)",
            "nullable": true
          },
          "Street2": {
            "required": [
              "Street2"
            ],
            "type": "string",
            "description": "The person's street (optional)",
            "nullable": true
          },
          "ZipCode": {
            "required": [
              "ZipCode"
            ],
            "type": "string",
            "description": "The person's zip code (optional)",
            "nullable": true
          },
          "Phone": {
            "required": [
              "Phone"
            ],
            "type": "string",
            "description": "The person's phone (optional)",
            "nullable": true
          },
          "Company": {
            "required": [
              "Company"
            ],
            "type": "string",
            "description": "The person's company (optional)",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site Id (optional)",
            "format": "int64",
            "nullable": true
          },
          "GeoSite": {
            "required": [
              "GeoSite"
            ],
            "type": "string",
            "description": "The GeoSite Id (optional)",
            "nullable": true
          },
          "IPAddress": {
            "required": [
              "IPAddress"
            ],
            "type": "string",
            "description": "The end-user's IP address (mandatory only when WhiteLabelSiteId is used, otherwise ignored)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddProfileResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddPersonResponseDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "AddStrategy": {
        "type": "object",
        "properties": {
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The desired strategy name",
            "nullable": true
          },
          "StartingCapital": {
            "required": [
              "StartingCapital"
            ],
            "type": "integer",
            "description": "(Optional) The starting capital. Must be set when Account is not specified, ignored when Account is specified",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddStrategyResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "ApprovedAccount": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64",
            "nullable": true
          },
          "AddedDate": {
            "required": [
              "AddedDate"
            ],
            "type": "string",
            "description": "The UTC date when the record was created",
            "format": "date-time"
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage Account",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The BrokerId",
            "format": "int64"
          },
          "ConnectionType": {
            "required": [
              "ConnectionType"
            ],
            "type": "integer",
            "description": "The Connection type. 0 = Autotrade, 1 = BrokerTransmit",
            "format": "int32"
          },
          "AddedByPersonId": {
            "required": [
              "AddedByPersonId"
            ],
            "type": "integer",
            "description": "The PersonId who approved the account",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutotradeAccountLinkageReportDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The unique Id",
            "format": "int64"
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The brokerage account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The StrategyId",
            "format": "int64"
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The BrokerId",
            "format": "int64"
          },
          "AutotradeSetupTime": {
            "required": [
              "AutotradeSetupTime"
            ],
            "type": "string",
            "description": "UTC DateTime when the client setup Autotrade",
            "format": "date-time"
          },
          "AutotradeStartTime": {
            "required": [
              "AutotradeStartTime"
            ],
            "type": "string",
            "description": "UTC DateTime when Autotrade actually started",
            "format": "date-time",
            "nullable": true
          },
          "SecondsToBrokerApproved": {
            "required": [
              "SecondsToBrokerApproved"
            ],
            "type": "integer",
            "description": "How many seconds it took to link the account after the client setup Autotrade",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutotradeSettingsDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The unique Id",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64"
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The client first name. Not case-sensitive",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The client last name. Not case-sensitive",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The client email",
            "nullable": true
          },
          "Country": {
            "required": [
              "Country"
            ],
            "type": "string",
            "description": "The client country",
            "nullable": true
          },
          "State": {
            "required": [
              "State"
            ],
            "type": "string",
            "description": "The client state/province",
            "nullable": true
          },
          "Language": {
            "required": [
              "Language"
            ],
            "type": "string",
            "description": "The client's preferred language",
            "nullable": true
          },
          "SiteDomain": {
            "required": [
              "SiteDomain"
            ],
            "type": "string",
            "description": "The White-Label site base URL, if any",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The broker ID",
            "format": "int32"
          },
          "Connection": {
            "required": [
              "Connection"
            ],
            "type": "string",
            "description": "The API client platform name",
            "nullable": true
          },
          "IntroducingBrokerId": {
            "required": [
              "IntroducingBrokerId"
            ],
            "type": "integer",
            "description": "The introducing broker ID",
            "format": "int32"
          },
          "IntroducingBroker": {
            "required": [
              "IntroducingBroker"
            ],
            "type": "string",
            "description": "The introducing broker name",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The Strategy ID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy name",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage/SIM/Papertrade Account",
            "nullable": true
          },
          "AccountType": {
            "required": [
              "AccountType"
            ],
            "type": "integer",
            "description": "The account type",
            "format": "int32"
          },
          "BrokerUserID": {
            "required": [
              "BrokerUserID"
            ],
            "type": "string",
            "description": "The broker User ID",
            "nullable": true
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The account currency",
            "nullable": true
          },
          "SalesRepId": {
            "required": [
              "SalesRepId"
            ],
            "type": "integer",
            "description": "The sales rep ID",
            "format": "int32"
          },
          "SalesRep": {
            "required": [
              "SalesRep"
            ],
            "type": "string",
            "description": "The sales rep name",
            "nullable": true
          },
          "IsTradeLeader": {
            "required": [
              "IsTradeLeader"
            ],
            "type": "boolean",
            "description": "TRUE if this is a BrokerTransmit setup"
          },
          "IsManualDiscardedPosition": {
            "required": [
              "IsManualDiscardedPosition"
            ],
            "type": "boolean",
            "description": "Internal use",
            "nullable": true
          },
          "IgnoreManualOrders": {
            "required": [
              "IgnoreManualOrders"
            ],
            "type": "boolean",
            "description": "TRUE if Autotrade will ignore manual orders (it normally would disable AutoSync when a manual order fill is detected)"
          },
          "IsConfirmationNeeded": {
            "required": [
              "IsConfirmationNeeded"
            ],
            "type": "boolean",
            "description": "TRUE if Manual Confirmation feature is enabled"
          },
          "IsSyncEnabled": {
            "required": [
              "IsSyncEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if AutoSync is enabled"
          },
          "WillSyncToOpenStocksUSA": {
            "required": [
              "WillSyncToOpenStocksUSA"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenStocksEurope": {
            "required": [
              "WillSyncToOpenStocksEurope"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenOptionsUSA": {
            "required": [
              "WillSyncToOpenOptionsUSA"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenOptionsEurope": {
            "required": [
              "WillSyncToOpenOptionsEurope"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenFuturesUSA": {
            "required": [
              "WillSyncToOpenFuturesUSA"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenFuturesEurope": {
            "required": [
              "WillSyncToOpenFuturesEurope"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenFuturesAsia": {
            "required": [
              "WillSyncToOpenFuturesAsia"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "WillSyncToOpenForex": {
            "required": [
              "WillSyncToOpenForex"
            ],
            "type": "boolean",
            "description": "TRUE if client Autotrade settings have recently changed or client clicked on the ReSync button"
          },
          "LastSyncStocksUSA": {
            "required": [
              "LastSyncStocksUSA"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncStocksEurope": {
            "required": [
              "LastSyncStocksEurope"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncOptionsUSA": {
            "required": [
              "LastSyncOptionsUSA"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncOptionsEurope": {
            "required": [
              "LastSyncOptionsEurope"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncFuturesUSA": {
            "required": [
              "LastSyncFuturesUSA"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncFuturesEurope": {
            "required": [
              "LastSyncFuturesEurope"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncFuturesAsia": {
            "required": [
              "LastSyncFuturesAsia"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "LastSyncForex": {
            "required": [
              "LastSyncForex"
            ],
            "type": "string",
            "description": "Last UTC date when Sync to open positions ran",
            "format": "date-time",
            "nullable": true
          },
          "IsBrokerEnabled": {
            "required": [
              "IsBrokerEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if the account is enabled broker-side. You can determine if the account is currently Autotrading from a combination of fields: \"IsBrokerEnabled\" = True AND \"IsAutotradeDisabled\" = False AND \"Approved\" = True."
          },
          "IsAutotradeDisabled": {
            "required": [
              "IsAutotradeDisabled"
            ],
            "type": "boolean",
            "description": "TRUE if Autotrading has been disabled"
          },
          "IsAutotradeDisabledReason": {
            "required": [
              "IsAutotradeDisabledReason"
            ],
            "type": "string",
            "description": "The Autotrade Disabled Reason",
            "nullable": true
          },
          "SyncDisabledReason": {
            "required": [
              "SyncDisabledReason"
            ],
            "type": "string",
            "description": "The AutoSync Disabled Reason",
            "nullable": true
          },
          "FirstBrokerActivationDate": {
            "required": [
              "FirstBrokerActivationDate"
            ],
            "type": "string",
            "description": "The first date when the account was activated by the broker",
            "format": "date-time",
            "nullable": true
          },
          "NetLiquidationValue": {
            "required": [
              "NetLiquidationValue"
            ],
            "type": "number",
            "description": "Last known account net liquidation value. Not available at all brokers",
            "format": "double",
            "nullable": true
          },
          "NetLiquidationValueDate": {
            "required": [
              "NetLiquidationValueDate"
            ],
            "type": "string",
            "description": "UTC date of last known account net liquidation value",
            "format": "date-time",
            "nullable": true
          },
          "VirtualLimitOrdersEnabled": {
            "required": [
              "VirtualLimitOrdersEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if limit orders are held on the server due to strict broker margin constraints that result in rejected orders"
          },
          "ScalingPercentage": {
            "required": [
              "ScalingPercentage"
            ],
            "type": "number",
            "description": "The Autotrade scaling factor",
            "format": "double"
          },
          "SettingsLastUpdateUTC": {
            "required": [
              "SettingsLastUpdateUTC"
            ],
            "type": "string",
            "description": "The most recent UTC date the Autotrade settings were updated by the client",
            "format": "date-time"
          },
          "Approved": {
            "required": [
              "Approved"
            ],
            "type": "boolean",
            "description": "TRUE if broker has approved the account for Autotrade"
          },
          "ClosingOrdersOnly": {
            "required": [
              "ClosingOrdersOnly"
            ],
            "type": "boolean",
            "description": "TRUE if account is in closing orders only mode"
          },
          "EnabledFutures": {
            "required": [
              "EnabledFutures"
            ],
            "type": "boolean",
            "description": "TRUE if futures are enabled for Autotrade"
          },
          "FuturesLong": {
            "required": [
              "FuturesLong"
            ],
            "type": "boolean",
            "description": "TRUE if long futures positions are enabled for Autotrade"
          },
          "FuturesShort": {
            "required": [
              "FuturesShort"
            ],
            "type": "boolean",
            "description": "TRUE if short futures positions are enabled for Autotrade"
          },
          "MinFutures": {
            "required": [
              "MinFutures"
            ],
            "type": "integer",
            "description": "Minimum quantity when scaling futures orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "MaxFutures": {
            "required": [
              "MaxFutures"
            ],
            "type": "integer",
            "description": "Maximum quantity when scaling futures orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "EnabledForex": {
            "required": [
              "EnabledForex"
            ],
            "type": "boolean",
            "description": "TRUE if forex are enabled for Autotrade"
          },
          "ForexEnabledLong": {
            "required": [
              "ForexEnabledLong"
            ],
            "type": "boolean",
            "description": "TRUE if long forex positions are enabled for Autotrade"
          },
          "ForexEnabledShort": {
            "required": [
              "ForexEnabledShort"
            ],
            "type": "boolean",
            "description": "TRUE if short forex positions are enabled for Autotrade"
          },
          "ForexLotSize": {
            "required": [
              "ForexLotSize"
            ],
            "type": "integer",
            "description": "Forex lot size for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "MinForex": {
            "required": [
              "MinForex"
            ],
            "type": "integer",
            "description": "Minimum quantity when scaling forex orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "MaxForex": {
            "required": [
              "MaxForex"
            ],
            "type": "integer",
            "description": "Maximum quantity when scaling forex orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "EnabledStocks": {
            "required": [
              "EnabledStocks"
            ],
            "type": "boolean",
            "description": "TRUE if stocks are enabled for Autotrade"
          },
          "StocksLong": {
            "required": [
              "StocksLong"
            ],
            "type": "boolean",
            "description": "TRUE if long stocks positions are enabled for Autotrade"
          },
          "StocksShort": {
            "required": [
              "StocksShort"
            ],
            "type": "boolean",
            "description": "TRUE if short stocks positions are enabled for Autotrade"
          },
          "MaxStocksDollars": {
            "required": [
              "MaxStocksDollars"
            ],
            "type": "integer",
            "description": "Maximum currency value when scaling stock orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "TradeStocksAsCFD": {
            "required": [
              "TradeStocksAsCFD"
            ],
            "type": "boolean",
            "description": "TRUE when all stocks are CFDs in brokerage account"
          },
          "EnabledOptions": {
            "required": [
              "EnabledOptions"
            ],
            "type": "boolean",
            "description": "TRUE if options are enabled for Autotrade"
          },
          "OptionsLong": {
            "required": [
              "OptionsLong"
            ],
            "type": "boolean",
            "description": "TRUE if long options positions are enabled for Autotrade"
          },
          "OptionsShort": {
            "required": [
              "OptionsShort"
            ],
            "type": "boolean",
            "description": "TRUE if short options positions are enabled for Autotrade"
          },
          "MinOptions": {
            "required": [
              "MinOptions"
            ],
            "type": "integer",
            "description": "Minimum quantity when scaling options orders for Autotrade",
            "format": "int32",
            "nullable": true
          },
          "MaxOptions": {
            "required": [
              "MaxOptions"
            ],
            "type": "integer",
            "description": "Maximum quantity when scaling option orders for Autotrade",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutotradeStatsDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "DateUtc": {
            "type": "string",
            "format": "date-time"
          },
          "Account": {
            "type": "string",
            "nullable": true
          },
          "PersonId": {
            "type": "integer",
            "format": "int64"
          },
          "BrokerId": {
            "type": "integer",
            "format": "int64"
          },
          "IB": {
            "type": "integer",
            "format": "int64"
          },
          "SalesRep": {
            "type": "integer",
            "format": "int64"
          },
          "WhiteLabelSiteId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "GeoSiteId": {
            "type": "string",
            "nullable": true
          },
          "NetLiquidationValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "LastBrokerNetLiquidationUpdateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "FirstBrokerActivationDateUTC": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "AutotradedStocksStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "AutotradedFuturesStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "AutotradedOptionsStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "AutotradedForexStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "AutotradedCryptoStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "UniqueAutotradedStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "BrokertransmitStocksStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "BrokertransmitFuturesStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "BrokertransmitOptionsStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "BrokertransmitForexStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "BrokertransmitCryptoStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "UniqueBrokertransmitStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "PlatformtransmitStocksStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "PlatformtransmitFuturesStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "PlatformtransmitOptionsStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "PlatformtransmitForexStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "PlatformtransmitCryptoStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "UniquePlatformtransmitStrategies": {
            "type": "integer",
            "format": "int32"
          },
          "IsSyncEnabled": {
            "type": "boolean"
          },
          "IsManualConfirmationEnabled": {
            "type": "boolean"
          },
          "IsDisabled": {
            "type": "boolean"
          },
          "Currency": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "IsBrokerEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AutotradedAccountDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage/SIM/Papertrade Account",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The broker ID",
            "format": "int64"
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The client first name. Not case-sensitive",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The client last name. Not case-sensitive",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The client email",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The Strategy ID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy name",
            "nullable": true
          },
          "IsSyncEnabled": {
            "required": [
              "IsSyncEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if AutoSync is enabled"
          },
          "IsAutotrading": {
            "required": [
              "IsAutotrading"
            ],
            "type": "boolean",
            "description": "TRUE if the account is currently Autotrading. This value is derived from a combination of fields: \"IsBrokerEnabled\" = True AND \"IsAutotradeDisabled\" = False AND \"Approved\" = True. This will be FALSE if the broker is disconnected (weekends, maintenance periods, outages, etc), or if the account has been disabled for Autotrading"
          },
          "IsAutotradeDisabled": {
            "required": [
              "IsAutotradeDisabled"
            ],
            "type": "boolean",
            "description": "TRUE if Autotrading has been disabled"
          },
          "IsAutotradeDisabledReason": {
            "required": [
              "IsAutotradeDisabledReason"
            ],
            "type": "string",
            "description": "The Autotrade Disabled Reason",
            "nullable": true
          },
          "SyncDisabledReason": {
            "required": [
              "SyncDisabledReason"
            ],
            "type": "string",
            "description": "The Sync Disabled Reason",
            "nullable": true
          },
          "SettingsLastUpdateUTC": {
            "required": [
              "SettingsLastUpdateUTC"
            ],
            "type": "string",
            "description": "The most recent UTC date the Autotrade settings were updated by the client",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "AutotradedStrategyDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The Subscription ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64"
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotraded Account",
            "nullable": true
          },
          "ScalingPercentage": {
            "required": [
              "ScalingPercentage"
            ],
            "type": "number",
            "description": "The Autotraded Scaling Percentage",
            "format": "double"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 SystemID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The BrokerId",
            "format": "int32",
            "nullable": true
          },
          "BrokerName": {
            "required": [
              "BrokerName"
            ],
            "type": "string",
            "description": "The broker name",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date when the person setup Autotrading for the Strategy",
            "format": "date-time",
            "nullable": true
          },
          "LastModified": {
            "required": [
              "LastModified"
            ],
            "type": "string",
            "description": "UTC Date when the person last modified the Autotrade settings for the Strategy",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BooleanResponseBase": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "BrokerDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The unique Id",
            "format": "int64"
          },
          "Name": {
            "required": [
              "Name"
            ],
            "type": "string",
            "description": "The broker name",
            "nullable": true
          },
          "IsEnabled": {
            "required": [
              "IsEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if broker is Live"
          },
          "ConnectionName": {
            "required": [
              "ConnectionName"
            ],
            "type": "string",
            "description": "The Autotrade name to show clients",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BrokerMarginRequirementsDTO": {
        "type": "object",
        "properties": {
          "Initial": {
            "required": [
              "Initial"
            ],
            "type": "number",
            "description": "Upfront amount needed to trade the instrument",
            "format": "double",
            "nullable": true
          },
          "Maintenance": {
            "required": [
              "Maintenance"
            ],
            "type": "number",
            "description": "Minimum overnight account balance required to keep the position open",
            "format": "double",
            "nullable": true
          },
          "Intraday": {
            "required": [
              "Intraday"
            ],
            "type": "number",
            "description": "Minimum intraday account balance required to keep the position open",
            "format": "double",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The BrokerId",
            "format": "int64",
            "nullable": true
          },
          "BrokerName": {
            "required": [
              "BrokerName"
            ],
            "type": "string",
            "description": "The broker name",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BrokerTradeDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The unique Id",
            "format": "int64"
          },
          "TradeDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The AccountId",
            "nullable": true
          },
          "OrderId": {
            "required": [
              "OrderId"
            ],
            "type": "string",
            "description": "The OrderID, if any",
            "nullable": true
          },
          "BrokerSymbol": {
            "type": "string",
            "nullable": true
          },
          "SecurityDescription": {
            "type": "string",
            "nullable": true
          },
          "AssetType": {
            "type": "string",
            "nullable": true
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The security Currency",
            "nullable": true
          },
          "TransactionType": {
            "type": "string",
            "nullable": true
          },
          "Quantity": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "UnitPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "GrossAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Commission": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Tax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Net": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Exchange": {
            "type": "string",
            "nullable": true
          },
          "MasterAccountId": {
            "type": "string",
            "nullable": true
          },
          "ExecutionId": {
            "type": "string",
            "nullable": true
          },
          "CostBasis": {
            "type": "string",
            "nullable": true
          },
          "C2Symbol": {
            "type": "string",
            "nullable": true
          },
          "C2PriceMultiplier": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ExchangeSymbol": {
            "type": "string",
            "nullable": true
          },
          "ExchangeId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "C2SymbolDTO": {
        "type": "object",
        "properties": {
          "FullSymbol": {
            "required": [
              "FullSymbol"
            ],
            "type": "string",
            "description": "The full native C2 symbol e.g. BSRR2121Q22.5",
            "nullable": true
          },
          "SymbolType": {
            "required": [
              "SymbolType"
            ],
            "type": "string",
            "description": "The type of instrument. e.g. 'stock', 'option', 'future', 'forex'",
            "nullable": true
          },
          "Underlying": {
            "required": [
              "Underlying"
            ],
            "type": "string",
            "description": "Option Underlying symbol. Read-only value sent in responses. It is ignored in requests.",
            "nullable": true
          },
          "Expiry": {
            "required": [
              "Expiry"
            ],
            "type": "string",
            "description": "Option expiry. Format is 'May21'. Read-only value sent in responses. It is ignored in requests.",
            "nullable": true
          },
          "PutOrCall": {
            "required": [
              "PutOrCall"
            ],
            "type": "string",
            "description": "Option 'put' or 'call'. Read-only value sent in responses. It is ignored in requests.",
            "nullable": true
          },
          "StrikePrice": {
            "required": [
              "StrikePrice"
            ],
            "type": "number",
            "description": "Option strike price. Read-only value sent in responses. It is ignored in requests.",
            "format": "double",
            "nullable": true
          },
          "Description": {
            "required": [
              "Description"
            ],
            "type": "string",
            "description": "(optional) Instrument description. Read-only value sent in responses. It is ignored in requests.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CancelAutotradeOrderResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "CancelSignalResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "DashBoardItemDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64"
          },
          "BrokerName": {
            "required": [
              "BrokerName"
            ],
            "type": "string",
            "description": "The broker name, if any",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Brokerage/SIM/Papertrade Account",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "StrategyId",
            "format": "int64",
            "nullable": true
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date when the person setup Autotrading for the Strategy",
            "format": "date-time",
            "nullable": true
          },
          "TodayReturn": {
            "required": [
              "TodayReturn"
            ],
            "type": "number",
            "description": "Today's profit",
            "format": "double",
            "nullable": true
          },
          "TotalReturn": {
            "required": [
              "TotalReturn"
            ],
            "type": "number",
            "description": "The total profit",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DesiredPositionResponseDTO": {
        "type": "object",
        "properties": {
          "NewSignals": {
            "required": [
              "NewSignals"
            ],
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "New Signals",
            "nullable": true
          },
          "CanceledSignals": {
            "required": [
              "CanceledSignals"
            ],
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Canceled Signals",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DesiredPositionResponseDTOV2": {
        "type": "object",
        "properties": {
          "NewSignals": {
            "required": [
              "NewSignals"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalResponse"
            },
            "description": "New Signals",
            "nullable": true
          },
          "CanceledSignals": {
            "required": [
              "CanceledSignals"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalResponse"
            },
            "description": "Canceled Signals",
            "nullable": true
          },
          "RejectedSignals": {
            "required": [
              "RejectedSignals"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalResponse"
            },
            "description": "Rejected Signals",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExchangeSymbolDTO": {
        "type": "object",
        "properties": {
          "Symbol": {
            "required": [
              "Symbol"
            ],
            "type": "string",
            "description": "The exchange root symbol e.g. AAPL",
            "nullable": true
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The 3-character ISO instrument currency. E.g. 'USD'",
            "nullable": true
          },
          "SecurityExchange": {
            "required": [
              "SecurityExchange"
            ],
            "type": "string",
            "description": "The MIC Exchange code. Set to DEFAULT for stocks, forex & options. For Futures, valid values are: XCME, XEUR, XICE, XLIF, XNYB, XNYM, XASX, XCBF, XCBT, XCEC, XKBT, XSES. See details at http://www.iso15022.org/MIC/homepageMIC.htm",
            "nullable": true
          },
          "SecurityType": {
            "required": [
              "SecurityType"
            ],
            "type": "string",
            "description": "The SecurityType e.g. 'CS', 'FUT', 'OPT', 'FOR'",
            "nullable": true
          },
          "MaturityMonthYear": {
            "required": [
              "MaturityMonthYear"
            ],
            "type": "string",
            "description": "The MaturityMonthYear e.g. '202503' (March 2025), or if the contract requires a day: '20210521' (May 21, 2025)",
            "nullable": true
          },
          "PutOrCall": {
            "required": [
              "PutOrCall"
            ],
            "type": "integer",
            "description": "The Option PutOrCall e.g. 0 = Put, 1 = Call",
            "format": "int32",
            "nullable": true
          },
          "StrikePrice": {
            "required": [
              "StrikePrice"
            ],
            "type": "number",
            "description": "The ISO Option Strike Price. Zero means none",
            "format": "double",
            "nullable": true
          },
          "PriceMultiplier": {
            "required": [
              "PriceMultiplier"
            ],
            "type": "number",
            "description": "The multiplier to apply to the Exchange price to get the C2-formatted price. Read-only value sent in responses. It is ignored in requests.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetAccessKeyResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessKeyDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetActiveOrdersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradeAccountLinkageReportResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradeAccountLinkageReportDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradeHistoricalOrdersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradeSettingsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradeSettingsDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradeStatsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradeStatsDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradedStrategiesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradedStrategyDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetAutotradersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradedStrategyDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetBrokersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BrokerDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetDashBoardResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DashBoardItemDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetHistoricalOrdersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderStatusDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetIBAccountInfoResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IBAccountDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetIntroducingBrokersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IntroducingBrokerDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetOpenPositionsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PositionDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetPendingAccountsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingAccountDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetPhoneAlreadyExistsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetRule575StatusResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule575StatusDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetSimResultsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimResultDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetStrategyDetailsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyDetailsDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetStrategyHistoricalClosedTradesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoricalTradeDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetStrategyHistoricalEquityResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyHistoricalEquityDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetStrategyMuxStatusResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyMuxStatusDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetSubscribedStrategiesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubcribedStrategyDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetSubscribersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategySubscriberDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetSubscriptionsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetSupportedSymbolsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportedSymbolDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetWatchListMembersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WatchListMemberDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetWatchListsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WatchListDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetWhiteLabelSiteUsersResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WhiteLabelSiteMember"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetWhiteLabelSitesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WhiteLabelSiteDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "GetWlInstrumentationExportResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationExportDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "Hello": {
        "type": "object",
        "properties": {
          "Name": {
            "required": [
              "Name"
            ],
            "type": "string",
            "description": "Your name (or any string)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HelloResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "HistoricalTradeDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "TradeId": {
            "required": [
              "TradeId"
            ],
            "type": "integer",
            "description": "The TradeId",
            "format": "int64",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "OpenDate": {
            "required": [
              "OpenDate"
            ],
            "type": "string",
            "description": "DateTime when the trade was opened",
            "format": "date-time",
            "nullable": true
          },
          "CloseDate": {
            "required": [
              "CloseDate"
            ],
            "type": "string",
            "description": "DateTime when the trade was closed",
            "format": "date-time",
            "nullable": true
          },
          "AvgOpenFillPrice": {
            "required": [
              "AvgOpenFillPrice"
            ],
            "type": "number",
            "description": "The volume-weighted average opening fill price (VWAP)",
            "format": "double",
            "nullable": true
          },
          "AvgCloseFillPrice": {
            "required": [
              "AvgCloseFillPrice"
            ],
            "type": "number",
            "description": "The volume-weighted average closing fill price (VWAP)",
            "format": "double",
            "nullable": true
          },
          "OpenedQuantity": {
            "required": [
              "OpenedQuantity"
            ],
            "type": "number",
            "description": "The total quantity opened",
            "format": "double",
            "nullable": true
          },
          "ClosedQuantity": {
            "required": [
              "ClosedQuantity"
            ],
            "type": "number",
            "description": "The total quantity closed",
            "format": "double",
            "nullable": true
          },
          "OpenSide": {
            "required": [
              "OpenSide"
            ],
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "'1' = Buy, '2' = Sell",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Buy",
              "2": "Sell"
            }
          },
          "CloseSide": {
            "required": [
              "CloseSide"
            ],
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "'1' = Buy, '2' = Sell",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Buy",
              "2": "Sell"
            }
          },
          "ProfitLoss": {
            "required": [
              "ProfitLoss"
            ],
            "type": "number",
            "description": "The net profit or loss of the trade",
            "format": "double",
            "nullable": true
          },
          "Commission": {
            "required": [
              "Commission"
            ],
            "type": "number",
            "description": "The commission included in the ProfitLoss",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown": {
            "required": [
              "MaxDrawdown"
            ],
            "type": "number",
            "description": "The unrealized currency loss when the maximum peak-to-valley drawdown occurred for this trade",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown_DateCalculated": {
            "required": [
              "MaxDrawdown_DateCalculated"
            ],
            "type": "string",
            "description": "The timestamp when this maximum peak-to-valley drawdown was calculated in New York time zone",
            "format": "date-time",
            "nullable": true
          },
          "MaxDrawdown_WorstPrice": {
            "required": [
              "MaxDrawdown_WorstPrice"
            ],
            "type": "number",
            "description": "The worst price during the peak-to-valley drawdown for this trade",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown_WorstPriceDate": {
            "required": [
              "MaxDrawdown_WorstPriceDate"
            ],
            "type": "string",
            "description": "The date in New York time zone when the worst price occurred during the peak-to-valley drawdown for this trade",
            "format": "date-time",
            "nullable": true
          },
          "MaxDrawdown_StrategyEquity": {
            "required": [
              "MaxDrawdown_StrategyEquity"
            ],
            "type": "number",
            "description": "The Strategy equity when the maximum peak-to-valley drawdown occurred for this trade",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown_EntryPrice": {
            "required": [
              "MaxDrawdown_EntryPrice"
            ],
            "type": "number",
            "description": "The price at which the trade causing the maximum equity drop",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown_OpenQuantity": {
            "required": [
              "MaxDrawdown_OpenQuantity"
            ],
            "type": "number",
            "description": "The size of the trade (number of units) that initiated the maximum peak-to-valley drawdown",
            "format": "double",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          }
        },
        "additionalProperties": false
      },
      "IBAccountDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID",
            "format": "int64"
          },
          "AccountId": {
            "required": [
              "AccountId"
            ],
            "type": "string",
            "description": "The Brokerage Account",
            "nullable": true
          },
          "BaseCurrency": {
            "type": "string",
            "nullable": true
          },
          "AccountTitle": {
            "type": "string",
            "nullable": true
          },
          "Street": {
            "type": "string",
            "nullable": true
          },
          "Street2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Zip": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "AccountType": {
            "type": "string",
            "nullable": true
          },
          "CustomerType": {
            "type": "string",
            "nullable": true
          },
          "MasterAccountId": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "DateOpened": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DateClosed": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "DateFunded": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Capabilities": {
            "type": "string",
            "nullable": true
          },
          "BrokerCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IntroducingBrokerDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The unique Id",
            "format": "int64"
          },
          "Firm": {
            "required": [
              "Firm"
            ],
            "type": "string",
            "description": "The company name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The contact email",
            "nullable": true
          },
          "IsEnabled": {
            "required": [
              "IsEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if enabled"
          },
          "ContactFirstName": {
            "required": [
              "ContactFirstName"
            ],
            "type": "string",
            "description": "The contact first name",
            "nullable": true
          },
          "ContactLastName": {
            "required": [
              "ContactLastName"
            ],
            "type": "string",
            "description": "The contact last name",
            "nullable": true
          },
          "ContactPhone": {
            "required": [
              "ContactPhone"
            ],
            "type": "string",
            "description": "The contact phone",
            "nullable": true
          },
          "AutotradeServiceName": {
            "required": [
              "AutotradeServiceName"
            ],
            "type": "string",
            "description": "The Autotrade name to be shown clients",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KYCInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The pre-flight record ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64"
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's email. This is also the username when logging in to C2",
            "nullable": true
          },
          "Phone": {
            "required": [
              "Phone"
            ],
            "type": "string",
            "description": "The person's telephone",
            "nullable": true
          },
          "IsPhoneVerified": {
            "required": [
              "IsPhoneVerified"
            ],
            "type": "boolean",
            "description": "True if the the person's telephone is verified",
            "nullable": true
          },
          "Street": {
            "required": [
              "Street"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "City": {
            "required": [
              "City"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "Province": {
            "required": [
              "Province"
            ],
            "type": "string",
            "description": "The verified address state/county/province",
            "nullable": true
          },
          "PostCode": {
            "required": [
              "PostCode"
            ],
            "type": "string",
            "description": "The verified address zip/postal code",
            "nullable": true
          },
          "Country": {
            "required": [
              "Country"
            ],
            "type": "string",
            "description": "The verified address",
            "nullable": true
          },
          "PhotoId1": {
            "required": [
              "PhotoId1"
            ],
            "type": "string",
            "description": "The verified client photo ID (e.g. passport, residency card, driver's license) (optional)",
            "format": "byte",
            "nullable": true
          },
          "PhotoId1Title": {
            "required": [
              "PhotoId1Title"
            ],
            "type": "string",
            "description": "PhotoID title (optional)",
            "nullable": true
          },
          "PhotoId2": {
            "required": [
              "PhotoId2"
            ],
            "type": "string",
            "description": "The verified client photo ID (e.g. passport, residency card, driver's license) (optional)",
            "format": "byte",
            "nullable": true
          },
          "PhotoId2Title": {
            "required": [
              "PhotoId2Title"
            ],
            "type": "string",
            "description": "PhotoID title (optional)",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The C2 White Label Site Id",
            "format": "int64",
            "nullable": true
          },
          "GeoSite": {
            "required": [
              "GeoSite"
            ],
            "type": "string",
            "description": "The C2 GeoSite Id",
            "nullable": true
          },
          "SiteURL": {
            "required": [
              "SiteURL"
            ],
            "type": "string",
            "description": "The URL of the site for client-side redirection",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KYCInfoResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KYCInfo"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "KYCScore": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The pre-flight record ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64"
          },
          "Created": {
            "required": [
              "Created"
            ],
            "type": "string",
            "description": "The UTC date when the KYC was created",
            "format": "date-time"
          },
          "Approved": {
            "required": [
              "Approved"
            ],
            "type": "string",
            "description": "The UTC date when the KYC was approved",
            "format": "date-time",
            "nullable": true
          },
          "Started": {
            "required": [
              "Started"
            ],
            "type": "string",
            "description": "The UTC date when the KYC was started by the client",
            "format": "date-time",
            "nullable": true
          },
          "Finished": {
            "required": [
              "Finished"
            ],
            "type": "string",
            "description": "The UTC date when the KYC was finished by the client",
            "format": "date-time",
            "nullable": true
          },
          "RedirectedToKYCTimes": {
            "required": [
              "RedirectedToKYCTimes"
            ],
            "type": "integer",
            "description": "The number of times this user has been redirected to the KYC",
            "format": "int64",
            "nullable": true
          },
          "Score": {
            "required": [
              "Score"
            ],
            "type": "integer",
            "description": "The KYC score",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KYCScoreResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KYCScore"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "ManageWatchList": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64",
            "nullable": true
          },
          "WatchListId": {
            "required": [
              "WatchListId"
            ],
            "type": "integer",
            "description": "The WatchList Id. Required except when ModificationAction=ADD and ModificationSource=LIST",
            "format": "int64",
            "nullable": true
          },
          "ModificationSource": {
            "required": [
              "ModificationSource"
            ],
            "type": "string",
            "description": "The Type of list to modify. Valid values are 'LIST' (for the whole watchlist), 'MEMBER' (for the list items)",
            "nullable": true
          },
          "ModificationAction": {
            "required": [
              "ModificationAction"
            ],
            "type": "string",
            "description": "The change to make. Valid values are: ADD, DELETE",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The Strategy Id. Only required when ModificationSource=MEMBER",
            "format": "int64",
            "nullable": true
          },
          "WatchListName": {
            "required": [
              "WatchListName"
            ],
            "type": "string",
            "description": "The name of the watchlist. Only required when ModificationAction=ADD and ModificationSource=LIST",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MarginRequirementsDTO": {
        "type": "object",
        "properties": {
          "Initial": {
            "required": [
              "Initial"
            ],
            "type": "number",
            "description": "Upfront amount needed to trade the instrument",
            "format": "double",
            "nullable": true
          },
          "Maintenance": {
            "required": [
              "Maintenance"
            ],
            "type": "number",
            "description": "Minimum overnight account balance required to keep the position open",
            "format": "double",
            "nullable": true
          },
          "Intraday": {
            "required": [
              "Intraday"
            ],
            "type": "number",
            "description": "Minimum intraday account balance required to keep the position open",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "NewAutotradeOrder": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotrade account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64",
            "nullable": true
          },
          "Order": {
            "$ref": "#/components/schemas/OrderDTO"
          }
        },
        "additionalProperties": false
      },
      "NewAutotradeOrderResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "NewSignalResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "NewStrategyOrder": {
        "type": "object",
        "properties": {
          "Order": {
            "$ref": "#/components/schemas/OrderDTO"
          }
        },
        "additionalProperties": false
      },
      "OrderDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID. Read-only. Only present in response",
            "format": "int64"
          },
          "OrderId": {
            "required": [
              "OrderId"
            ],
            "type": "string",
            "description": "The OrderId. Only required in NewAutotradeOrder and ReplaceAutotradeOrder endpoints",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The C2 Strategy name. Read-only. Only present in response",
            "nullable": true
          },
          "SignalId": {
            "required": [
              "SignalId"
            ],
            "type": "integer",
            "description": "Only required in ReplaceAutotradeOrder endpoint. The C2 SignalId",
            "format": "int64",
            "nullable": true
          },
          "AvgPx": {
            "required": [
              "AvgPx"
            ],
            "type": "number",
            "description": "The order average fill price",
            "format": "double",
            "nullable": true
          },
          "OrderType": {
            "required": [
              "OrderType"
            ],
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "'1' = Market, '2' = Limit, '3' = Stop",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Market",
              "2": "Limit",
              "3": "Stop"
            }
          },
          "Side": {
            "required": [
              "Side"
            ],
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "'1' = Buy, '2' = Sell",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Buy",
              "2": "Sell"
            }
          },
          "OpenClose": {
            "required": [
              "OpenClose"
            ],
            "enum": [
              "O",
              "C"
            ],
            "type": "string",
            "description": "Only required in ReplaceAutotradeOrder endpoint. 'O' = Open, 'C' = Close",
            "nullable": true,
            "example": "O",
            "x-enumDescriptions": {
              "O": "Open",
              "C": "Close"
            }
          },
          "OrderQuantity": {
            "required": [
              "OrderQuantity"
            ],
            "type": "number",
            "description": "The unsigned order quantity",
            "format": "double",
            "nullable": true
          },
          "Limit": {
            "required": [
              "Limit"
            ],
            "type": "number",
            "description": "The C2-formatted Limit Price",
            "format": "double",
            "nullable": true
          },
          "Stop": {
            "required": [
              "Stop"
            ],
            "type": "number",
            "description": "The C2-formatted Stop Price",
            "format": "double",
            "nullable": true
          },
          "TIF": {
            "required": [
              "TIF"
            ],
            "enum": [
              "0",
              "1"
            ],
            "type": "string",
            "description": "The time in force. 0 = Day, 1 = Good Till Cancel (GTC)",
            "nullable": true,
            "example": "0",
            "x-enumDescriptions": {
              "0": "Day",
              "1": "GTC"
            }
          },
          "ProfitTarget": {
            "required": [
              "ProfitTarget"
            ],
            "type": "number",
            "description": "Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order",
            "format": "double",
            "nullable": true
          },
          "StopLoss": {
            "required": [
              "StopLoss"
            ],
            "type": "number",
            "description": "Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order",
            "format": "double",
            "nullable": true
          },
          "DoNotCreateOCAGroup": {
            "required": [
              "DoNotCreateOCAGroup"
            ],
            "type": "boolean",
            "description": "Only available in NewStrategyOrder endpoint. Default is false. Used to indicate the ProfitTarget and StopLoss orders should not be added to a OCA group. Each exit order will be managed separately",
            "nullable": true
          },
          "CancelReplaceSignalId": {
            "required": [
              "CancelReplaceSignalId"
            ],
            "type": "integer",
            "description": "Used to specify that this order replaces another",
            "format": "int64",
            "nullable": true
          },
          "ParentSignalId": {
            "required": [
              "ParentSignalId"
            ],
            "type": "integer",
            "description": "Used to specify that this order is conditional (a child) on another",
            "format": "int64",
            "nullable": true
          },
          "ParkedUntilDate": {
            "required": [
              "ParkedUntilDate"
            ],
            "type": "string",
            "description": "The New-York date/time when the signal should be released. Applies only to Strategy signals",
            "format": "date-time",
            "nullable": true
          },
          "DoNotSyncToOpen": {
            "required": [
              "DoNotSyncToOpen"
            ],
            "type": "boolean",
            "description": "Used to indicate this order should not be synched in the brokerage account. Only applies to Opening non-market orders",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          },
          "RejectMessage": {
            "required": [
              "RejectMessage"
            ],
            "type": "string",
            "description": "The order rejection message. Only available in response when OrderStatus = '8' (Rejected)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrderStatusDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The row ID. Read-only. Only present in response",
            "format": "int64"
          },
          "OrderId": {
            "required": [
              "OrderId"
            ],
            "type": "string",
            "description": "The OrderId. Only required in NewAutotradeOrder and ReplaceAutotradeOrder endpoints",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The C2 Strategy name. Read-only. Only present in response",
            "nullable": true
          },
          "SignalId": {
            "required": [
              "SignalId"
            ],
            "type": "integer",
            "description": "Only required in ReplaceAutotradeOrder endpoint. The C2 SignalId",
            "format": "int64",
            "nullable": true
          },
          "AvgPx": {
            "required": [
              "AvgPx"
            ],
            "type": "number",
            "description": "The order average fill price",
            "format": "double",
            "nullable": true
          },
          "OrderType": {
            "required": [
              "OrderType"
            ],
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "'1' = Market, '2' = Limit, '3' = Stop",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Market",
              "2": "Limit",
              "3": "Stop"
            }
          },
          "Side": {
            "required": [
              "Side"
            ],
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "'1' = Buy, '2' = Sell",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Buy",
              "2": "Sell"
            }
          },
          "OpenClose": {
            "required": [
              "OpenClose"
            ],
            "enum": [
              "O",
              "C"
            ],
            "type": "string",
            "description": "Only required in ReplaceAutotradeOrder endpoint. 'O' = Open, 'C' = Close",
            "nullable": true,
            "example": "O",
            "x-enumDescriptions": {
              "O": "Open",
              "C": "Close"
            }
          },
          "OrderQuantity": {
            "required": [
              "OrderQuantity"
            ],
            "type": "number",
            "description": "The unsigned order quantity",
            "format": "double",
            "nullable": true
          },
          "Limit": {
            "required": [
              "Limit"
            ],
            "type": "number",
            "description": "The C2-formatted Limit Price",
            "format": "double",
            "nullable": true
          },
          "Stop": {
            "required": [
              "Stop"
            ],
            "type": "number",
            "description": "The C2-formatted Stop Price",
            "format": "double",
            "nullable": true
          },
          "TIF": {
            "required": [
              "TIF"
            ],
            "enum": [
              "0",
              "1"
            ],
            "type": "string",
            "description": "The time in force. 0 = Day, 1 = Good Till Cancel (GTC)",
            "nullable": true,
            "example": "0",
            "x-enumDescriptions": {
              "0": "Day",
              "1": "GTC"
            }
          },
          "ProfitTarget": {
            "required": [
              "ProfitTarget"
            ],
            "type": "number",
            "description": "Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order",
            "format": "double",
            "nullable": true
          },
          "StopLoss": {
            "required": [
              "StopLoss"
            ],
            "type": "number",
            "description": "Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order",
            "format": "double",
            "nullable": true
          },
          "DoNotCreateOCAGroup": {
            "required": [
              "DoNotCreateOCAGroup"
            ],
            "type": "boolean",
            "description": "Only available in NewStrategyOrder endpoint. Default is false. Used to indicate the ProfitTarget and StopLoss orders should not be added to a OCA group. Each exit order will be managed separately",
            "nullable": true
          },
          "CancelReplaceSignalId": {
            "required": [
              "CancelReplaceSignalId"
            ],
            "type": "integer",
            "description": "Used to specify that this order replaces another",
            "format": "int64",
            "nullable": true
          },
          "ParentSignalId": {
            "required": [
              "ParentSignalId"
            ],
            "type": "integer",
            "description": "Used to specify that this order is conditional (a child) on another",
            "format": "int64",
            "nullable": true
          },
          "ParkedUntilDate": {
            "required": [
              "ParkedUntilDate"
            ],
            "type": "string",
            "description": "The New-York date/time when the signal should be released. Applies only to Strategy signals",
            "format": "date-time",
            "nullable": true
          },
          "DoNotSyncToOpen": {
            "required": [
              "DoNotSyncToOpen"
            ],
            "type": "boolean",
            "description": "Used to indicate this order should not be synched in the brokerage account. Only applies to Opening non-market orders",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          },
          "RejectMessage": {
            "required": [
              "RejectMessage"
            ],
            "type": "string",
            "description": "The order rejection message. Only available in response when OrderStatus = '8' (Rejected)",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "BrokerId",
            "format": "int64",
            "nullable": true
          },
          "OrderStatus": {
            "required": [
              "OrderStatus"
            ],
            "type": "string",
            "description": "'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace",
            "nullable": true
          },
          "FilledQuantity": {
            "required": [
              "FilledQuantity"
            ],
            "type": "number",
            "description": "The unsigned quantity filled",
            "format": "double",
            "nullable": true
          },
          "AvgFillPrice": {
            "required": [
              "AvgFillPrice"
            ],
            "type": "number",
            "description": "The average fill price, if FilledQuantity > 0",
            "format": "double",
            "nullable": true
          },
          "PostedDate": {
            "required": [
              "PostedDate"
            ],
            "type": "string",
            "description": "UTC DateTime when the order was posted",
            "format": "date-time",
            "nullable": true
          },
          "SignalType": {
            "required": [
              "SignalType"
            ],
            "type": "integer",
            "description": "The type of signal. 1 = StrategySignal, 4 = ManualSignal, 5 = StrategySignalManualOverride, 6 = AutoStopLoss",
            "format": "int32"
          },
          "Info": {
            "required": [
              "Info"
            ],
            "type": "string",
            "description": "Detailed information about the order, if available",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaginationProperties": {
        "type": "object",
        "properties": {
          "prev_cursor": {
            "required": [
              "prev_cursor"
            ],
            "type": "string",
            "description": "The previous Pagination Cursor",
            "nullable": true
          },
          "next_cursor": {
            "required": [
              "next_cursor"
            ],
            "type": "string",
            "description": "The next Pagination Cursor",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PendingAccountDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The record ID",
            "format": "int64"
          },
          "PersonId": {
            "type": "integer",
            "format": "int64"
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Language": {
            "type": "string",
            "nullable": true
          },
          "SiteDomain": {
            "type": "string",
            "nullable": true
          },
          "BrokerId": {
            "type": "integer",
            "format": "int32"
          },
          "Connection": {
            "type": "string",
            "nullable": true
          },
          "IntroducingBroker": {
            "type": "string",
            "nullable": true
          },
          "IntroducingBrokerId": {
            "type": "integer",
            "format": "int32"
          },
          "StrategyName": {
            "type": "string",
            "nullable": true
          },
          "Account": {
            "type": "string",
            "nullable": true
          },
          "SalesRepId": {
            "type": "integer",
            "format": "int32"
          },
          "SalesRep": {
            "type": "string",
            "nullable": true
          },
          "IsTradeLeader": {
            "type": "boolean"
          },
          "FirstBrokerActivationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "NetLiquidationValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "NetLiquidationValueDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EnabledFutures": {
            "type": "boolean"
          },
          "EnabledForex": {
            "type": "boolean"
          },
          "EnabledStocks": {
            "type": "boolean"
          },
          "EnabledOptions": {
            "type": "boolean"
          },
          "WhiteLabelSiteId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "GeoSiteId": {
            "type": "string",
            "nullable": true
          },
          "UtcDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PersonDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "Alias": {
            "required": [
              "Alias"
            ],
            "type": "string",
            "description": "The person's alias",
            "nullable": true
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's email. This is also the username when logging in to C2",
            "nullable": true
          },
          "Phone": {
            "required": [
              "Phone"
            ],
            "type": "string",
            "description": "The person's telephone",
            "nullable": true
          },
          "IsPhoneVerified": {
            "required": [
              "IsPhoneVerified"
            ],
            "type": "boolean",
            "description": "True if the the person's telephone is verified"
          },
          "Language": {
            "required": [
              "Language"
            ],
            "type": "string",
            "description": "The person's preferred language",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site Id",
            "format": "int64",
            "nullable": true
          },
          "CountryCode": {
            "required": [
              "CountryCode"
            ],
            "type": "string",
            "description": "The person's country code",
            "nullable": true
          },
          "DivisionCode": {
            "required": [
              "DivisionCode"
            ],
            "type": "string",
            "description": "The person's division (usually the state) code",
            "nullable": true
          },
          "Created": {
            "required": [
              "Created"
            ],
            "type": "string",
            "description": "The UTC date when the person was created",
            "format": "date-time"
          },
          "LastLoggedIn": {
            "required": [
              "LastLoggedIn"
            ],
            "type": "string",
            "description": "The UTC date when the person last logged in",
            "format": "date-time"
          },
          "LastIP": {
            "required": [
              "LastIP"
            ],
            "type": "string",
            "description": "The person's last known IP",
            "nullable": true
          },
          "IsEmailValidated": {
            "required": [
              "IsEmailValidated"
            ],
            "type": "boolean",
            "description": "The Person's email validation status"
          },
          "IsAlive": {
            "required": [
              "IsAlive"
            ],
            "type": "boolean",
            "description": "The Person's user account status"
          },
          "ApprovedAccounts": {
            "required": [
              "ApprovedAccounts"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApprovedAccount"
            },
            "description": "The list of approved brokerage accounts for this person",
            "nullable": true
          },
          "IsManager": {
            "required": [
              "IsManager"
            ],
            "type": "boolean",
            "description": "True if the the person is a strategy manager"
          },
          "IsInvestor": {
            "required": [
              "IsInvestor"
            ],
            "type": "boolean",
            "description": "True if the the person is a strategy investor"
          },
          "GeoSite": {
            "required": [
              "GeoSite"
            ],
            "type": "string",
            "description": "The GeoSite",
            "nullable": true
          },
          "IsGeoSiteAdmin": {
            "required": [
              "IsGeoSiteAdmin"
            ],
            "type": "boolean",
            "description": "True if the the person is a GeoSite administrator",
            "nullable": true
          },
          "SupportCompanyName": {
            "required": [
              "SupportCompanyName"
            ],
            "type": "string",
            "description": "The customer support autotrade provider",
            "nullable": true
          },
          "SupportSiteURL": {
            "required": [
              "SupportSiteURL"
            ],
            "type": "string",
            "description": "The customer support website address",
            "nullable": true
          },
          "SupportEmail": {
            "required": [
              "SupportEmail"
            ],
            "type": "string",
            "description": "The customer support email",
            "nullable": true
          },
          "Icon": {
            "required": [
              "Icon"
            ],
            "type": "string",
            "description": "The profile icon",
            "format": "byte",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PositionBase": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "Quantity": {
            "required": [
              "Quantity"
            ],
            "type": "number",
            "description": "The net signed position quantity. Short positions will be negative.",
            "format": "double",
            "nullable": true
          },
          "AvgPx": {
            "required": [
              "AvgPx"
            ],
            "type": "number",
            "description": "The position average price",
            "format": "double",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          }
        },
        "additionalProperties": false
      },
      "PositionDTO": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "Quantity": {
            "required": [
              "Quantity"
            ],
            "type": "number",
            "description": "The net signed position quantity. Short positions will be negative.",
            "format": "double",
            "nullable": true
          },
          "AvgPx": {
            "required": [
              "AvgPx"
            ],
            "type": "number",
            "description": "The position average price",
            "format": "double",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The C2 Strategy name",
            "nullable": true
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The 3-character ISO instrument currency. E.g. 'USD'",
            "nullable": true
          },
          "OpenedDate": {
            "required": [
              "OpenedDate"
            ],
            "type": "string",
            "description": "UTC DateTime when the position was opened",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "ReplaceAutotradeOrder": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotrade account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64",
            "nullable": true
          },
          "OrderId": {
            "required": [
              "OrderId"
            ],
            "type": "string",
            "description": "The OrderID to be replaced",
            "nullable": true
          },
          "Price": {
            "required": [
              "Price"
            ],
            "type": "number",
            "description": "The new Order price",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReplaceAutotradeOrderResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "ReplaceSignalResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignalIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "ReplaceStrategyOrder": {
        "type": "object",
        "properties": {
          "Order": {
            "$ref": "#/components/schemas/OrderDTO"
          }
        },
        "additionalProperties": false
      },
      "ResetPaperTrade": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotrade account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResponseError": {
        "type": "object",
        "properties": {
          "ErrorCode": {
            "type": "string",
            "description": "The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.",
            "nullable": true
          },
          "FieldName": {
            "type": "string",
            "description": "The affected parameter.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "More details about the ErrorCode.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Error information pertaining to a particular named field. Used for returning multiple field validation errors."
      },
      "ResponseStatus": {
        "type": "object",
        "properties": {
          "ErrorCode": {
            "type": "string",
            "description": "The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "The human-readable meaning of the ErrorCode.",
            "nullable": true
          },
          "Errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Rule575ExceptionDTO": {
        "type": "object",
        "properties": {
          "ManagerName": {
            "required": [
              "ManagerName"
            ],
            "type": "string",
            "description": "Manager display name",
            "nullable": true
          },
          "SymbolRoot": {
            "required": [
              "SymbolRoot"
            ],
            "type": "string",
            "description": "Root symbol of the instrument (e.g. @MNQ)",
            "nullable": true
          },
          "SignalId": {
            "required": [
              "SignalId"
            ],
            "type": "integer",
            "description": "The C2 Signal ID",
            "format": "int64"
          },
          "IsFavorable": {
            "required": [
              "IsFavorable"
            ],
            "type": "boolean",
            "description": "True when the fill slippage was favorable to the subscriber"
          },
          "AccountName": {
            "required": [
              "AccountName"
            ],
            "type": "string",
            "description": "The broker account name",
            "nullable": true
          },
          "SystemName": {
            "required": [
              "SystemName"
            ],
            "type": "string",
            "description": "The C2 strategy name",
            "nullable": true
          },
          "FirstMdTime": {
            "required": [
              "FirstMdTime"
            ],
            "type": "string",
            "description": "Timestamp of the first market data tick used for the Rule 575 comparison (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "Session": {
            "required": [
              "Session"
            ],
            "type": "string",
            "description": "Trading session in which the fill occurred: RTH or ETH",
            "nullable": true
          },
          "FirstMarketPrice": {
            "required": [
              "FirstMarketPrice"
            ],
            "type": "number",
            "description": "Market price at FirstMdTime used as the Rule 575 reference price",
            "format": "double",
            "nullable": true
          },
          "SlippageTicks": {
            "required": [
              "SlippageTicks"
            ],
            "type": "number",
            "description": "Slippage in ticks relative to the Rule 575 reference price. Negative = favorable, positive = unfavorable",
            "format": "double",
            "nullable": true
          },
          "SystemId": {
            "required": [
              "SystemId"
            ],
            "type": "integer",
            "description": "The C2 Strategy ID",
            "format": "int64"
          },
          "FillTime": {
            "required": [
              "FillTime"
            ],
            "type": "string",
            "description": "Timestamp the fill was recorded (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "ManagerId": {
            "required": [
              "ManagerId"
            ],
            "type": "integer",
            "description": "The C2 Manager Person ID",
            "format": "int64"
          },
          "DelaySec": {
            "required": [
              "DelaySec"
            ],
            "type": "number",
            "description": "Seconds between signal emission and fill execution. Negative values indicate the fill arrived before the reference tick",
            "format": "double",
            "nullable": true
          },
          "LastPx": {
            "required": [
              "LastPx"
            ],
            "type": "number",
            "description": "Actual fill price (last price)",
            "format": "double",
            "nullable": true
          },
          "Side": {
            "required": [
              "Side"
            ],
            "type": "integer",
            "description": "FIX side code: 1 = Buy, 2 = Sell",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Rule575ExceptionSummaryDTO": {
        "type": "object",
        "properties": {
          "TotalExceptionFills": {
            "required": [
              "TotalExceptionFills"
            ],
            "type": "integer",
            "description": "Total number of fills that triggered a Rule 575 exception",
            "format": "int64"
          },
          "FavorableFillCount": {
            "required": [
              "FavorableFillCount"
            ],
            "type": "integer",
            "description": "Number of exception fills that were favorable to the subscriber",
            "format": "int64"
          },
          "UnfavorableFillCount": {
            "required": [
              "UnfavorableFillCount"
            ],
            "type": "integer",
            "description": "Number of exception fills that were unfavorable to the subscriber",
            "format": "int64"
          },
          "RthFillCount": {
            "required": [
              "RthFillCount"
            ],
            "type": "integer",
            "description": "Number of exception fills that occurred during Regular Trading Hours (RTH)",
            "format": "int64"
          },
          "EthFillCount": {
            "required": [
              "EthFillCount"
            ],
            "type": "integer",
            "description": "Number of exception fills that occurred during Extended Trading Hours (ETH)",
            "format": "int64"
          },
          "AvgSlippageTicks": {
            "required": [
              "AvgSlippageTicks"
            ],
            "type": "number",
            "description": "Average slippage in ticks across all exception fills",
            "format": "double"
          },
          "MaxAbsSlippageTicks": {
            "required": [
              "MaxAbsSlippageTicks"
            ],
            "type": "number",
            "description": "Maximum absolute slippage in ticks observed across all exception fills",
            "format": "double"
          },
          "AvgDelaySec": {
            "required": [
              "AvgDelaySec"
            ],
            "type": "number",
            "description": "Average delay in seconds between signal emission and fill execution",
            "format": "double"
          },
          "P90DelaySec": {
            "required": [
              "P90DelaySec"
            ],
            "type": "number",
            "description": "90th-percentile delay in seconds between signal emission and fill execution",
            "format": "double"
          },
          "UniqueStrategies": {
            "required": [
              "UniqueStrategies"
            ],
            "type": "integer",
            "description": "Number of distinct C2 strategies represented in the exception fills",
            "format": "int64"
          },
          "UniqueSignals": {
            "required": [
              "UniqueSignals"
            ],
            "type": "integer",
            "description": "Number of distinct C2 signals represented in the exception fills",
            "format": "int64"
          },
          "UniqueAccounts": {
            "required": [
              "UniqueAccounts"
            ],
            "type": "integer",
            "description": "Number of distinct broker accounts represented in the exception fills",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Rule575GroupRowDTO": {
        "type": "object",
        "properties": {
          "ManagerName": {
            "required": [
              "ManagerName"
            ],
            "type": "string",
            "description": "The manager display name for this strategy",
            "nullable": true
          },
          "AvgSlippage": {
            "required": [
              "AvgSlippage"
            ],
            "type": "number",
            "description": "Average slippage in ticks for this strategy",
            "format": "double"
          },
          "AvgLatency": {
            "required": [
              "AvgLatency"
            ],
            "type": "number",
            "description": "Average latency in seconds between signal emission and fill execution for this strategy",
            "format": "double"
          },
          "Key": {
            "required": [
              "Key"
            ],
            "type": "string",
            "description": "The group key identifier (strategy ID)",
            "nullable": true
          },
          "SystemName": {
            "required": [
              "SystemName"
            ],
            "type": "string",
            "description": "The strategy name",
            "nullable": true
          },
          "P90Latency": {
            "required": [
              "P90Latency"
            ],
            "type": "number",
            "description": "90th-percentile latency in seconds for this strategy",
            "format": "double"
          },
          "Fills": {
            "required": [
              "Fills"
            ],
            "type": "integer",
            "description": "Number of Rule 575 exception fills for this strategy",
            "format": "int64"
          },
          "FavorablePct": {
            "required": [
              "FavorablePct"
            ],
            "type": "number",
            "description": "Percentage of exception fills that were favorable to the subscriber",
            "format": "double"
          },
          "SystemId": {
            "required": [
              "SystemId"
            ],
            "type": "integer",
            "description": "The C2 strategy ID",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Rule575GroupedRollupDTO": {
        "type": "object",
        "properties": {
          "Hero": {
            "$ref": "#/components/schemas/Rule575HeroDTO"
          },
          "Rows": {
            "required": [
              "Rows"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule575GroupRowDTO"
            },
            "description": "One row per strategy, ordered by fills descending",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Rule575HeroDTO": {
        "type": "object",
        "properties": {
          "AvgSlippage": {
            "required": [
              "AvgSlippage"
            ],
            "type": "number",
            "description": "Average slippage in ticks across all exception fills",
            "format": "double"
          },
          "P90Latency": {
            "required": [
              "P90Latency"
            ],
            "type": "number",
            "description": "90th-percentile latency in seconds between signal emission and fill execution",
            "format": "double"
          },
          "AvgLatency": {
            "required": [
              "AvgLatency"
            ],
            "type": "number",
            "description": "Average latency in seconds between signal emission and fill execution",
            "format": "double"
          },
          "FavorablePct": {
            "required": [
              "FavorablePct"
            ],
            "type": "number",
            "description": "Percentage of exception fills that were favorable to the subscriber",
            "format": "double"
          },
          "TotalFills": {
            "required": [
              "TotalFills"
            ],
            "type": "integer",
            "description": "Total number of fills that triggered a Rule 575 exception",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "Rule575StatusDTO": {
        "type": "object",
        "properties": {
          "ExceptionSummary": {
            "$ref": "#/components/schemas/Rule575ExceptionSummaryDTO"
          },
          "Exceptions": {
            "required": [
              "Exceptions"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rule575ExceptionDTO"
            },
            "description": "One row per Rule 575 impacted fill / broker account combination",
            "nullable": true
          },
          "Rule575": {
            "$ref": "#/components/schemas/Rule575GroupedRollupDTO"
          }
        },
        "additionalProperties": false
      },
      "SearchAutotradedAccountsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutotradedAccountDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "SearchBrokerTradesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BrokerTradeDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "SearchStrategiesResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyBasicDetailsDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationProperties"
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "SetAutotradeSettings": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotrade account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int32",
            "nullable": true
          },
          "IsAutotradeEnabled": {
            "required": [
              "IsAutotradeEnabled"
            ],
            "type": "boolean",
            "description": "Set to TRUE if you want to enable the account for Autotrade. The StartAutotrade endpoint will automatically enable this setting. It may be disabled if your account is delinked by the broker, or if we detect rare unexpected activity in your account such as a margin call, pattern day trader, account becomes restricted by the broker, etc.",
            "nullable": true
          },
          "IsAutoSyncEnabled": {
            "required": [
              "IsAutoSyncEnabled"
            ],
            "type": "boolean",
            "description": "Set to TRUE if you want to enable or disable AutoSync for the account. AutoSync automatically gets disabled whenever an external (i.e. non-C2) order is executed in the account.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetDesiredPositionsResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DesiredPositionResponseDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "SetDesiredPositionsV2": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          },
          "Positions": {
            "required": [
              "Positions"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PositionBase"
            },
            "description": "The list of positions that must exist in the strategy. Quantity must be non-zero. To close a position, simply omit it from the Positions array. Sending an empty Positions array will close all positions.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SetDesiredPositionsV2Response": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DesiredPositionResponseDTOV2"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "SignalIdDTO": {
        "type": "object",
        "properties": {
          "SignalId": {
            "required": [
              "SignalId"
            ],
            "type": "integer",
            "description": "The parent C2 SignalId",
            "format": "int64"
          },
          "ProfitTargetSignalId": {
            "required": [
              "ProfitTargetSignalId"
            ],
            "type": "integer",
            "description": "The C2 ProfitTarget SignalId",
            "format": "int64",
            "nullable": true
          },
          "StopLossSignalId": {
            "required": [
              "StopLossSignalId"
            ],
            "type": "integer",
            "description": "The C2 StopLoss SignalId",
            "format": "int64",
            "nullable": true
          },
          "ExitSignalsOCAGroupId": {
            "required": [
              "ExitSignalsOCAGroupId"
            ],
            "type": "integer",
            "description": "The StopLossSignalId and ProfitTargetSignalId OCA (One-Cancels-All) group",
            "format": "int64",
            "nullable": true
          },
          "ParkedUntilDate": {
            "required": [
              "ParkedUntilDate"
            ],
            "type": "string",
            "description": "The New-York date/time when the signal should be released",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SignalResponse": {
        "type": "object",
        "properties": {
          "SignalId": {
            "required": [
              "SignalId"
            ],
            "type": "integer",
            "description": "The unique SignalId",
            "format": "int64",
            "nullable": true
          },
          "OrderStatus": {
            "required": [
              "OrderStatus"
            ],
            "type": "string",
            "description": "'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace",
            "nullable": true
          },
          "OrderType": {
            "required": [
              "OrderType"
            ],
            "enum": [
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "'1' = Market, '2' = Limit, '3' = Stop",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Market",
              "2": "Limit",
              "3": "Stop"
            }
          },
          "Side": {
            "required": [
              "Side"
            ],
            "enum": [
              "1",
              "2"
            ],
            "type": "string",
            "description": "'1' = Buy, '2' = Sell",
            "nullable": true,
            "example": "1",
            "x-enumDescriptions": {
              "1": "Buy",
              "2": "Sell"
            }
          },
          "OpenClose": {
            "required": [
              "OpenClose"
            ],
            "enum": [
              "O",
              "C"
            ],
            "type": "string",
            "description": "'O' = Open, 'C' = Close",
            "nullable": true,
            "example": "O",
            "x-enumDescriptions": {
              "O": "Open",
              "C": "Close"
            }
          },
          "OrderQuantity": {
            "required": [
              "OrderQuantity"
            ],
            "type": "number",
            "description": "The unsigned (absolute value) order quantity",
            "format": "double",
            "nullable": true
          },
          "Limit": {
            "required": [
              "Limit"
            ],
            "type": "number",
            "description": "The C2-formatted Limit Price",
            "format": "double",
            "nullable": true
          },
          "Stop": {
            "required": [
              "Stop"
            ],
            "type": "number",
            "description": "The C2-formatted Stop Price",
            "format": "double",
            "nullable": true
          },
          "TIF": {
            "required": [
              "TIF"
            ],
            "enum": [
              "0",
              "1"
            ],
            "type": "string",
            "description": "The time in force. 0 = Day, 1 = Good Till Cancel (GTC)",
            "nullable": true,
            "example": "0",
            "x-enumDescriptions": {
              "0": "Day",
              "1": "GTC"
            }
          },
          "FilledQuantity": {
            "required": [
              "FilledQuantity"
            ],
            "type": "number",
            "description": "The unsigned (absolute value) quantity filled",
            "format": "double",
            "nullable": true
          },
          "AvgFillPrice": {
            "required": [
              "AvgFillPrice"
            ],
            "type": "number",
            "description": "The average fill price, if FilledQuantity > 0",
            "format": "double",
            "nullable": true
          },
          "PostedDate": {
            "required": [
              "PostedDate"
            ],
            "type": "string",
            "description": "UTC DateTime when the order was posted",
            "format": "date-time",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          },
          "RejectMessage": {
            "required": [
              "RejectMessage"
            ],
            "type": "string",
            "description": "The signal rejection message. Only available in response when OrderStatus = '8' (Rejected)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SimResultDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64"
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's email",
            "nullable": true
          },
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The SIM Account",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "StrategyId",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date when the person started SIM for the Strategy",
            "format": "date-time"
          },
          "EndDate": {
            "required": [
              "EndDate"
            ],
            "type": "string",
            "description": "UTC Date when the person stopped SIM for the Strategy",
            "format": "date-time",
            "nullable": true
          },
          "StartEquity": {
            "required": [
              "StartEquity"
            ],
            "type": "integer",
            "description": "Dollar amount to start calculation",
            "format": "int64"
          },
          "EndEquity": {
            "required": [
              "EndEquity"
            ],
            "type": "integer",
            "description": "Dollar amount to end calculation",
            "format": "int64",
            "nullable": true
          },
          "TotalReturn": {
            "required": [
              "TotalReturn"
            ],
            "type": "number",
            "description": "Last 90 day's performance percent",
            "format": "double"
          },
          "TotalDelta": {
            "required": [
              "TotalDelta"
            ],
            "type": "number",
            "description": "Last 90 day's performance in dollars",
            "format": "double"
          },
          "ScalingFactor": {
            "required": [
              "ScalingFactor"
            ],
            "type": "integer",
            "description": "The % scaling factor. e.g. 2 means 2x the strategy quantities",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SingleSignOnResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "StartAutotrade": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The Autotrade account",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonID",
            "format": "int64",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The BrokerId",
            "format": "int32",
            "nullable": true
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The StrategyId",
            "format": "int64",
            "nullable": true
          },
          "ScalingPercentage": {
            "required": [
              "ScalingPercentage"
            ],
            "type": "integer",
            "description": "The Autotrade Scaling factor. e.g. Enter 105 for 105%",
            "format": "int64"
          },
          "FuturesEnabled": {
            "required": [
              "FuturesEnabled"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to enable the Futures asset class when autotrading this strategy. Default is FALSE",
            "default": false
          },
          "MaxFutures": {
            "required": [
              "MaxFutures"
            ],
            "type": "integer",
            "description": "(optional) Set a maximum number of contracts to hold in a position for this strategy",
            "format": "int32",
            "nullable": true
          },
          "ForexEnabled": {
            "required": [
              "ForexEnabled"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to enable autotrading Forex for this strategy. Default is FALSE",
            "default": false
          },
          "MaxForex": {
            "required": [
              "MaxForex"
            ],
            "type": "integer",
            "description": "(optional) Set a maximum number of units (each unit on C2 is 1000 currency units) to hold in a position for this strategy",
            "format": "int32",
            "nullable": true
          },
          "StocksEnabled": {
            "required": [
              "StocksEnabled"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to enable autotrading Stocks for this strategy. Default is FALSE",
            "default": false
          },
          "MaxStocksDollars": {
            "required": [
              "MaxStocksDollars"
            ],
            "type": "integer",
            "description": "(optional) Set a maximum number of dollars to hold in a position for this strategy (no decimals)",
            "format": "int32",
            "nullable": true
          },
          "OptionsEnabled": {
            "required": [
              "OptionsEnabled"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to enable autotrading Options for this strategy. Default is FALSE",
            "default": false
          },
          "ShortOptionsEnabled": {
            "required": [
              "ShortOptionsEnabled"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to enable the shorting of Options when autotrading this strategy. Default is FALSE",
            "default": false
          },
          "MaxOptions": {
            "required": [
              "MaxOptions"
            ],
            "type": "integer",
            "description": "(optional) Set a maximum number of contracts to hold in a position for this strategy",
            "format": "int32",
            "nullable": true
          },
          "DoNotJoinCurrentSystemPositions": {
            "required": [
              "DoNotJoinCurrentSystemPositions"
            ],
            "type": "boolean",
            "description": "(optional) TRUE to prevent joining currently open positions in the strategy. Only applies to new Autotrade setups: this setting must not be set when modifing an existing Autotrade setup.",
            "nullable": true
          },
          "AutoStopLoss": {
            "required": [
              "AutoStopLoss"
            ],
            "type": "integer",
            "description": "(optional) Dollar value of the automated stop loss which will rest in addition to the strategy stop loss orders",
            "format": "int64",
            "nullable": true
          },
          "AccountUserName": {
            "required": [
              "AccountUserName"
            ],
            "type": "string",
            "description": "(optional) The Brokerage account username. Only needed for specific Brokers, please enquire with support at help@collective2.com",
            "nullable": true
          },
          "AccountPassword": {
            "required": [
              "AccountPassword"
            ],
            "type": "string",
            "description": "(optional) The Brokerage account password. Only needed for specific Brokers, please enquire with support at help@collective2.com",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyBasicDetailsDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "Same value as StrategyId",
            "format": "int64"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 SystemID",
            "format": "int64"
          },
          "IsAlive": {
            "required": [
              "IsAlive"
            ],
            "type": "boolean",
            "description": "TRUE if the Strategy is alive"
          },
          "IsPrivate": {
            "required": [
              "IsPrivate"
            ],
            "type": "boolean",
            "description": "TRUE if the Strategy is a test or private strategy",
            "nullable": true
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date of when the Strategy was created",
            "format": "date-time",
            "nullable": true
          },
          "SecurityTypesEnabled": {
            "required": [
              "SecurityTypesEnabled"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "List of all SecurityTypes enabled for trading in the strategy",
            "nullable": true
          },
          "MonthlyCost": {
            "required": [
              "MonthlyCost"
            ],
            "type": "number",
            "description": "Cost of Strategy lease per month",
            "format": "double",
            "nullable": true
          },
          "StrategyOwnerId": {
            "required": [
              "StrategyOwnerId"
            ],
            "type": "integer",
            "description": "The Strategy Owner's PersonId",
            "format": "int64",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The Strategy Owner's White Label Site Id",
            "format": "int64",
            "nullable": true
          },
          "IsTradeOwnSystem": {
            "required": [
              "IsTradeOwnSystem"
            ],
            "type": "boolean",
            "description": "TRUE if Strategy owner Trades his Own Strategy",
            "nullable": true
          },
          "IsResellable": {
            "required": [
              "IsResellable"
            ],
            "type": "boolean",
            "description": "TRUE if the Strategy is on the external distribution network",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyDetailsDTO": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 strategyID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "IsAlive": {
            "required": [
              "IsAlive"
            ],
            "type": "boolean",
            "description": "TRUE if the Strategy is alive"
          },
          "IsResellable": {
            "required": [
              "IsResellable"
            ],
            "type": "boolean",
            "description": "TRUE if the Strategy is on the external distribution network",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date of when the Strategy was created",
            "format": "date-time",
            "nullable": true
          },
          "PrimarySecurityTypes": {
            "required": [
              "PrimarySecurityTypes"
            ],
            "type": "string",
            "description": "Primary asset class traded e.g. Stocks, Options, Forex, Futures",
            "nullable": true
          },
          "SecurityTypesEnabled": {
            "required": [
              "SecurityTypesEnabled"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "List of all SecurityTypes enabled for trading in the strategy",
            "nullable": true
          },
          "MonthlyCost": {
            "required": [
              "MonthlyCost"
            ],
            "type": "number",
            "description": "Cost of Strategy lease per month",
            "format": "double",
            "nullable": true
          },
          "StrategyOwnerId": {
            "required": [
              "StrategyOwnerId"
            ],
            "type": "integer",
            "description": "The Strategy Owner's PersonId",
            "format": "int64",
            "nullable": true
          },
          "StrategyOwnerName": {
            "required": [
              "StrategyOwnerName"
            ],
            "type": "string",
            "description": "The Strategy Owner's name",
            "nullable": true
          },
          "SuggestedCapital": {
            "required": [
              "SuggestedCapital"
            ],
            "type": "integer",
            "description": "The suggested capital to invest in the Strategy",
            "format": "int32",
            "nullable": true
          },
          "LastModified": {
            "required": [
              "LastModified"
            ],
            "type": "string",
            "description": "UTC Date of when the Strategy was last modified",
            "format": "date-time",
            "nullable": true
          },
          "Score": {
            "required": [
              "Score"
            ],
            "type": "integer",
            "description": "The C2 score",
            "format": "int32",
            "nullable": true
          },
          "IsTradeOwnSystem": {
            "required": [
              "IsTradeOwnSystem"
            ],
            "type": "boolean",
            "description": "TRUE if Strategy owner Trades his Own Strategy",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The WhiteLabel SiteId, if any",
            "format": "int64",
            "nullable": true
          },
          "IsPrivate": {
            "required": [
              "IsPrivate"
            ],
            "type": "boolean",
            "description": "TRUE if Strategy is private",
            "nullable": true
          },
          "AUM": {
            "required": [
              "AUM"
            ],
            "type": "integer",
            "description": "The total USD assets under management",
            "format": "int32",
            "nullable": true
          },
          "AUM_NumberOfAccounts": {
            "required": [
              "AUM_NumberOfAccounts"
            ],
            "type": "integer",
            "description": "The number of accounts used in the AUM calculation",
            "format": "int32",
            "nullable": true
          },
          "Return": {
            "required": [
              "Return"
            ],
            "type": "number",
            "description": "The total Strategy return",
            "format": "double",
            "nullable": true
          },
          "ReturnLabel": {
            "required": [
              "ReturnLabel"
            ],
            "type": "string",
            "description": "The total Strategy return label which explains the Return calculation",
            "nullable": true
          },
          "Equity": {
            "required": [
              "Equity"
            ],
            "type": "number",
            "description": "The current open profits (or open losses) in the positions the strategy is currently holding",
            "format": "double",
            "nullable": true
          },
          "Cash": {
            "required": [
              "Cash"
            ],
            "type": "number",
            "description": "The current strategy cash",
            "format": "double",
            "nullable": true
          },
          "StartingCash": {
            "required": [
              "StartingCash"
            ],
            "type": "number",
            "description": "The starting strategy cash",
            "format": "double",
            "nullable": true
          },
          "ProfitFactor": {
            "required": [
              "ProfitFactor"
            ],
            "type": "number",
            "description": "The win/loss ratio",
            "format": "double",
            "nullable": true
          },
          "CashDividends": {
            "required": [
              "CashDividends"
            ],
            "type": "number",
            "description": "The strategy's total cash dividends",
            "format": "double",
            "nullable": true
          },
          "BuyingPower": {
            "required": [
              "BuyingPower"
            ],
            "type": "number",
            "description": "The strategy's remaining Buying Power",
            "format": "double",
            "nullable": true
          },
          "MarginUsed": {
            "required": [
              "MarginUsed"
            ],
            "type": "number",
            "description": "The amount of collateral the strategy needs to put up to hold the positions it holds. For futures, this is specified per contract by the exchange; for stocks it's the standard margin formula",
            "format": "double",
            "nullable": true
          },
          "AgeInDays": {
            "required": [
              "AgeInDays"
            ],
            "type": "integer",
            "description": "Number of days the Strategy traded",
            "format": "int32",
            "nullable": true
          },
          "ModelAccountValue": {
            "required": [
              "ModelAccountValue"
            ],
            "type": "number",
            "description": "The current strategy account value",
            "format": "double",
            "nullable": true
          },
          "NumTrades": {
            "required": [
              "NumTrades"
            ],
            "type": "integer",
            "description": "The number of executed signals",
            "format": "int32",
            "nullable": true
          },
          "NumWinners": {
            "required": [
              "NumWinners"
            ],
            "type": "integer",
            "description": "The number of winning signals",
            "format": "int32",
            "nullable": true
          },
          "NumLosers": {
            "required": [
              "NumLosers"
            ],
            "type": "integer",
            "description": "The number of losing signals",
            "format": "int32",
            "nullable": true
          },
          "PercentWinTrades": {
            "required": [
              "PercentWinTrades"
            ],
            "type": "number",
            "description": "% of winning trades",
            "format": "double",
            "nullable": true
          },
          "SumDollarWinners": {
            "required": [
              "SumDollarWinners"
            ],
            "type": "number",
            "description": "Total USD of winning trades",
            "format": "double",
            "nullable": true
          },
          "SumDollarLosers": {
            "required": [
              "SumDollarLosers"
            ],
            "type": "number",
            "description": "Total USD of losing trades",
            "format": "double",
            "nullable": true
          },
          "NumMonths": {
            "required": [
              "NumMonths"
            ],
            "type": "integer",
            "description": "The total number of months for the strategy",
            "format": "int32",
            "nullable": true
          },
          "WinMonthsInUI": {
            "required": [
              "WinMonthsInUI"
            ],
            "type": "integer",
            "description": "The number of profitable months as shown on the C2 UI",
            "format": "int32",
            "nullable": true
          },
          "WinMonths": {
            "required": [
              "WinMonths"
            ],
            "type": "number",
            "description": "The number of profitable months",
            "format": "double",
            "nullable": true
          },
          "WinMonthsRatio": {
            "required": [
              "WinMonthsRatio"
            ],
            "type": "number",
            "description": "The ratio of winning months",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdown": {
            "required": [
              "MaxDrawdown"
            ],
            "type": "number",
            "description": "The % of maximum peak-to-valley historical drawdown",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdownDays": {
            "required": [
              "MaxDrawdownDays"
            ],
            "type": "number",
            "description": "The number of days of the maximum peak-to-valley historical drawdown",
            "format": "double",
            "nullable": true
          },
          "MaxDrawdownStartDate": {
            "required": [
              "MaxDrawdownStartDate"
            ],
            "type": "string",
            "description": "The maximum drawdown start date YYYYMMDD",
            "nullable": true
          },
          "MaxDrawdownEndDate": {
            "required": [
              "MaxDrawdownEndDate"
            ],
            "type": "string",
            "description": "The maximum drawdown end date YYYYMMDD",
            "nullable": true
          },
          "AvgWinDollars": {
            "required": [
              "AvgWinDollars"
            ],
            "type": "number",
            "description": "The average Strategy winning trade in dollars",
            "format": "double",
            "nullable": true
          },
          "AvgLossDollars": {
            "required": [
              "AvgLossDollars"
            ],
            "type": "number",
            "description": "The average Strategy losing trade in dollars",
            "format": "double",
            "nullable": true
          },
          "AvgTradeDuration": {
            "required": [
              "AvgTradeDuration"
            ],
            "type": "number",
            "description": "The average number of trading days that a position is held",
            "format": "double",
            "nullable": true
          },
          "CorrelationSP500": {
            "required": [
              "CorrelationSP500"
            ],
            "type": "number",
            "description": "The Correlation to the S&P 500 during strategy life",
            "format": "double",
            "nullable": true
          },
          "SP500Return": {
            "required": [
              "SP500Return"
            ],
            "type": "number",
            "description": "The cumulative % return of the SP500 during strategy life",
            "format": "double",
            "nullable": true
          },
          "ReturnVsSP500": {
            "required": [
              "ReturnVsSP500"
            ],
            "type": "number",
            "description": "The % return of the strategy - Return of SP500 % (cumulative)",
            "format": "double",
            "nullable": true
          },
          "AvgLeverage": {
            "required": [
              "AvgLeverage"
            ],
            "type": "number",
            "description": "The average leverage used by the Strategy",
            "format": "double",
            "nullable": true
          },
          "MaxLeverage": {
            "required": [
              "MaxLeverage"
            ],
            "type": "number",
            "description": "The max leverage used by the Strategy",
            "format": "double",
            "nullable": true
          },
          "CorrelationToSP500": {
            "required": [
              "CorrelationToSP500"
            ],
            "type": "number",
            "description": "The strategy correlation to the SP500",
            "format": "double",
            "nullable": true
          },
          "Alpha": {
            "required": [
              "Alpha"
            ],
            "type": "number",
            "description": "The Alpha ratio",
            "format": "double",
            "nullable": true
          },
          "Beta": {
            "required": [
              "Beta"
            ],
            "type": "number",
            "description": "The Beta ratio",
            "format": "double",
            "nullable": true
          },
          "Treynor": {
            "required": [
              "Treynor"
            ],
            "type": "number",
            "description": "The Treynor ratio",
            "format": "double",
            "nullable": true
          },
          "Sortino": {
            "required": [
              "Sortino"
            ],
            "type": "number",
            "description": "The Sortino ratio",
            "format": "double",
            "nullable": true
          },
          "Sharpe": {
            "required": [
              "Sharpe"
            ],
            "type": "number",
            "description": "The Sharpe ratio tells us whether a portfolio's returns are due to smart investment decisions or a result of excess risk",
            "format": "double",
            "nullable": true
          },
          "Calmar": {
            "required": [
              "Calmar"
            ],
            "type": "number",
            "description": "The Calmar ratio",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyHistoricalEquityDTO": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 strategyID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date of when the Strategy was created",
            "format": "date-time",
            "nullable": true
          },
          "SecurityTypesEnabled": {
            "required": [
              "SecurityTypesEnabled"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "boolean"
            },
            "description": "List of all SecurityTypes enabled for trading in the strategy",
            "nullable": true
          },
          "MonthlyCost": {
            "required": [
              "MonthlyCost"
            ],
            "type": "number",
            "description": "Cost of Strategy lease per month",
            "format": "double",
            "nullable": true
          },
          "StrategyOwnerId": {
            "required": [
              "StrategyOwnerId"
            ],
            "type": "integer",
            "description": "The Strategy Owner's PersonId",
            "format": "int64",
            "nullable": true
          },
          "MonthlyResults": {
            "required": [
              "MonthlyResults"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyMonthlyResultsDTO"
            },
            "description": "Monthly and Yearly stats for the strategy",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyIdDTO": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StrategyMonthlyResultsDTO": {
        "type": "object",
        "properties": {
          "Month": {
            "required": [
              "Month"
            ],
            "type": "integer",
            "description": "The month of the year",
            "format": "int32",
            "nullable": true
          },
          "MonthName": {
            "required": [
              "MonthName"
            ],
            "type": "string",
            "description": "The English name of the month",
            "nullable": true
          },
          "Year": {
            "required": [
              "Year"
            ],
            "type": "integer",
            "description": "The year",
            "format": "int32"
          },
          "Return": {
            "required": [
              "Return"
            ],
            "type": "number",
            "description": "The return % of the month or year (see IsAnnual property)",
            "format": "double"
          },
          "IsAnnual": {
            "required": [
              "IsAnnual"
            ],
            "type": "boolean",
            "description": "True if the Return is the annual ROI for the Year",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxExceptionContextDTO": {
        "type": "object",
        "properties": {
          "Qty": {
            "required": [
              "Qty"
            ],
            "type": "integer",
            "description": "The order quantity that was attempted",
            "format": "int64",
            "nullable": true
          },
          "Error": {
            "required": [
              "Error"
            ],
            "type": "string",
            "description": "The short error label (e.g. marginViolation)",
            "nullable": true
          },
          "Action": {
            "required": [
              "Action"
            ],
            "type": "string",
            "description": "The signal action attempted (e.g. BTO, STO, BTC, STC)",
            "nullable": true
          },
          "Symbol": {
            "required": [
              "Symbol"
            ],
            "type": "string",
            "description": "The instrument symbol (e.g. @ESH6)",
            "nullable": true
          },
          "Details": {
            "required": [
              "Details"
            ],
            "type": "string",
            "description": "The full human-readable rejection detail from the SignalAPI",
            "nullable": true
          },
          "ErrorCode": {
            "required": [
              "ErrorCode"
            ],
            "type": "string",
            "description": "The machine-readable error code (e.g. marginViolation)",
            "nullable": true
          },
          "TypeOfSymbol": {
            "required": [
              "TypeOfSymbol"
            ],
            "type": "string",
            "description": "The instrument type (e.g. future, stock, option)",
            "nullable": true
          },
          "CooldownSecs": {
            "required": [
              "CooldownSecs"
            ],
            "type": "integer",
            "description": "Seconds before the multiplexer will retry signalling this child",
            "format": "int64",
            "nullable": true
          },
          "ChildSystemId": {
            "required": [
              "ChildSystemId"
            ],
            "type": "integer",
            "description": "The child strategy SystemId (C2 StrategyId) that rejected the signal",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxExceptionDTO": {
        "type": "object",
        "properties": {
          "Guid": {
            "required": [
              "Guid"
            ],
            "type": "integer",
            "description": "The unique exception record identifier",
            "format": "int64"
          },
          "VariantGuid": {
            "required": [
              "VariantGuid"
            ],
            "type": "integer",
            "description": "The variant (child strategy) GUID this exception belongs to",
            "format": "int64"
          },
          "FamilyGuid": {
            "required": [
              "FamilyGuid"
            ],
            "type": "integer",
            "description": "The family GUID this exception belongs to",
            "format": "int64"
          },
          "VariantLabel": {
            "required": [
              "VariantLabel"
            ],
            "type": "string",
            "description": "The human-friendly variant label (e.g. 'Test Strategy AG Child #1')",
            "nullable": true
          },
          "FamilyName": {
            "required": [
              "FamilyName"
            ],
            "type": "string",
            "description": "The human-friendly family name (e.g. 'Test Strategy AG Family')",
            "nullable": true
          },
          "Severity": {
            "required": [
              "Severity"
            ],
            "type": "string",
            "description": "The exception severity level (e.g. warn, error)",
            "nullable": true
          },
          "Code": {
            "required": [
              "Code"
            ],
            "type": "string",
            "description": "The exception code key (e.g. CHILD_REJECT_MARGIN_FUTURE_ESH6)",
            "nullable": true
          },
          "Message": {
            "required": [
              "Message"
            ],
            "type": "string",
            "description": "The human-readable description of the signal transmission failure",
            "nullable": true
          },
          "FirstSeenWhen": {
            "required": [
              "FirstSeenWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp when this exception was first raised",
            "format": "int64"
          },
          "LastSeenWhen": {
            "required": [
              "LastSeenWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp when this exception was most recently raised",
            "format": "int64"
          },
          "AckedWhen": {
            "required": [
              "AckedWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp when this exception was acknowledged; null if unacknowledged",
            "format": "int64",
            "nullable": true
          },
          "AckedByPersonId": {
            "required": [
              "AckedByPersonId"
            ],
            "type": "integer",
            "description": "PersonId of the person who acknowledged this exception; null if unacknowledged",
            "format": "int64",
            "nullable": true
          },
          "ClearedWhen": {
            "required": [
              "ClearedWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp when this exception was cleared; null if still active",
            "format": "int64",
            "nullable": true
          },
          "ContextJson": {
            "required": [
              "ContextJson"
            ],
            "type": "string",
            "description": "Raw JSON string containing signal-level rejection context from the SignalAPI",
            "nullable": true
          },
          "Context": {
            "$ref": "#/components/schemas/StrategyMuxExceptionContextDTO"
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxExceptionSummaryDTO": {
        "type": "object",
        "properties": {
          "Total": {
            "required": [
              "Total"
            ],
            "type": "integer",
            "description": "Total number of active signal transmission exceptions",
            "format": "int64"
          },
          "UniqueVariants": {
            "required": [
              "UniqueVariants"
            ],
            "type": "integer",
            "description": "Number of distinct variant (child) strategies that have at least one active exception",
            "format": "int64"
          },
          "UniqueFamilies": {
            "required": [
              "UniqueFamilies"
            ],
            "type": "integer",
            "description": "Number of distinct multiplexer families that have at least one active exception",
            "format": "int64"
          },
          "LatestLastSeenWhen": {
            "required": [
              "LatestLastSeenWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp of the most recently observed exception across all active exceptions",
            "format": "int64"
          },
          "SeverityCounts": {
            "required": [
              "SeverityCounts"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Active exception count keyed by severity level (e.g. { \"warn\": 1, \"error\": 2 })",
            "nullable": true
          },
          "CodeCounts": {
            "required": [
              "CodeCounts"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Active exception count keyed by exception code (e.g. { \"CHILD_REJECT_MARGIN_FUTURE_ESH6\": 1 })",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxStatusDTO": {
        "type": "object",
        "properties": {
          "FamilyGuid": {
            "required": [
              "FamilyGuid"
            ],
            "type": "integer",
            "description": "The multiplexer family GUID filter used in the request (0 = all families)",
            "format": "int64"
          },
          "VariantGuid": {
            "required": [
              "VariantGuid"
            ],
            "type": "integer",
            "description": "The variant (child strategy) GUID filter used in the request (0 = all variants)",
            "format": "int64"
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site ID associated with this multiplexer family",
            "format": "int64"
          },
          "WhiteLabelSiteName": {
            "required": [
              "WhiteLabelSiteName"
            ],
            "type": "string",
            "description": "The White Label site name associated with this multiplexer family",
            "nullable": true
          },
          "Ok": {
            "required": [
              "Ok"
            ],
            "type": "string",
            "description": "Indicates the request succeeded: '1' = ok",
            "nullable": true
          },
          "DriftGraceSecs": {
            "required": [
              "DriftGraceSecs"
            ],
            "type": "integer",
            "description": "Grace period in seconds before a variant position drift is considered confirmed",
            "format": "int64"
          },
          "Summary": {
            "$ref": "#/components/schemas/StrategyMuxSummaryDTO"
          },
          "ExceptionSummary": {
            "$ref": "#/components/schemas/StrategyMuxExceptionSummaryDTO"
          },
          "SyncSummary": {
            "required": [
              "SyncSummary"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyMuxVariantSyncDTO"
            },
            "description": "Per-variant aggregated position sync counts across all symbols held by each child strategy",
            "nullable": true
          },
          "SyncDetails": {
            "required": [
              "SyncDetails"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyMuxSyncDetailDTO"
            },
            "description": "Per-symbol position sync detail rows for the variant_guid specified in the request. Empty when no variant_guid filter is provided.",
            "nullable": true
          },
          "Exceptions": {
            "required": [
              "Exceptions"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyMuxExceptionDTO"
            },
            "description": "Active (uncleared) multiplexer signal transmission exception rows across all variants in the family",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxSummaryDTO": {
        "type": "object",
        "properties": {
          "VariantRows": {
            "required": [
              "VariantRows"
            ],
            "type": "integer",
            "description": "Total number of variant (child strategy) rows in this family",
            "format": "int64"
          },
          "ActiveExceptionCount": {
            "required": [
              "ActiveExceptionCount"
            ],
            "type": "integer",
            "description": "Number of active (uncleared) signal transmission exceptions across all variants",
            "format": "int64"
          },
          "VariantsWithInSync": {
            "required": [
              "VariantsWithInSync"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one position in sync with the parent strategy",
            "format": "int64"
          },
          "VariantsWithDriftConfirmed": {
            "required": [
              "VariantsWithDriftConfirmed"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one confirmed position drift",
            "format": "int64"
          },
          "VariantsWithDrift": {
            "required": [
              "VariantsWithDrift"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one drifted position (confirmed or pending)",
            "format": "int64"
          },
          "VariantsWithError": {
            "required": [
              "VariantsWithError"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one position in an error state",
            "format": "int64"
          },
          "VariantsWithPaused": {
            "required": [
              "VariantsWithPaused"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one position paused from signal transmission",
            "format": "int64"
          },
          "VariantsWithBlocked": {
            "required": [
              "VariantsWithBlocked"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one position blocked from receiving signals",
            "format": "int64"
          },
          "VariantsWithBreaker": {
            "required": [
              "VariantsWithBreaker"
            ],
            "type": "integer",
            "description": "Number of variants that have at least one position halted by a circuit breaker",
            "format": "int64"
          },
          "VariantsWithMarketClosed": {
            "required": [
              "VariantsWithMarketClosed"
            ],
            "type": "integer",
            "description": "Number of variants with positions not receiving signals because the market is closed",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxSyncDetailDTO": {
        "type": "object",
        "properties": {
          "VariantGuid": {
            "required": [
              "VariantGuid"
            ],
            "type": "integer",
            "description": "The variant (child strategy) GUID this detail row belongs to",
            "format": "int64"
          },
          "FamilyGuid": {
            "required": [
              "FamilyGuid"
            ],
            "type": "integer",
            "description": "The family GUID this detail row belongs to",
            "format": "int64"
          },
          "ChildSystemId": {
            "required": [
              "ChildSystemId"
            ],
            "type": "integer",
            "description": "The child strategy SystemId (C2 StrategyId)",
            "format": "int64"
          },
          "VariantLabel": {
            "required": [
              "VariantLabel"
            ],
            "type": "string",
            "description": "The human-friendly variant label",
            "nullable": true
          },
          "Symbol": {
            "required": [
              "Symbol"
            ],
            "type": "string",
            "description": "The instrument symbol (e.g. @ESH6, AAPL)",
            "nullable": true
          },
          "TypeOfSymbol": {
            "required": [
              "TypeOfSymbol"
            ],
            "type": "string",
            "description": "The instrument type (e.g. future, stock, option)",
            "nullable": true
          },
          "SyncState": {
            "required": [
              "SyncState"
            ],
            "type": "string",
            "description": "The sync state for this symbol: in_sync, drift_pending, drift_confirmed, error, paused, blocked, breaker, market_closed",
            "nullable": true
          },
          "ExpectedQty": {
            "required": [
              "ExpectedQty"
            ],
            "type": "number",
            "description": "The expected (parent strategy scaled) quantity for this symbol. Short positions are negative.",
            "format": "double"
          },
          "ActualQty": {
            "required": [
              "ActualQty"
            ],
            "type": "number",
            "description": "The actual quantity held in the child strategy for this symbol. Short positions are negative.",
            "format": "double"
          },
          "DriftQty": {
            "required": [
              "DriftQty"
            ],
            "type": "number",
            "description": "The quantity difference between expected and actual (ExpectedQty - ActualQty). Zero when in sync.",
            "format": "double"
          },
          "LastUpdateWhen": {
            "required": [
              "LastUpdateWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp when this sync detail record was last updated",
            "format": "int64"
          },
          "LastUpdateAgeSecs": {
            "required": [
              "LastUpdateAgeSecs"
            ],
            "type": "integer",
            "description": "Seconds elapsed since this sync detail record was last updated",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StrategyMuxVariantSyncDTO": {
        "type": "object",
        "properties": {
          "VariantGuid": {
            "required": [
              "VariantGuid"
            ],
            "type": "integer",
            "description": "The variant (child strategy) GUID",
            "format": "int64"
          },
          "FamilyGuid": {
            "required": [
              "FamilyGuid"
            ],
            "type": "integer",
            "description": "The family GUID this variant belongs to",
            "format": "int64"
          },
          "ChildSystemId": {
            "required": [
              "ChildSystemId"
            ],
            "type": "integer",
            "description": "The child strategy SystemId (C2 StrategyId)",
            "format": "int64"
          },
          "VariantLabel": {
            "required": [
              "VariantLabel"
            ],
            "type": "string",
            "description": "The human-friendly variant label",
            "nullable": true
          },
          "LastUpdateWhen": {
            "required": [
              "LastUpdateWhen"
            ],
            "type": "integer",
            "description": "Unix timestamp of the last position sync update for this variant",
            "format": "int64"
          },
          "LastUpdateAgeSecs": {
            "required": [
              "LastUpdateAgeSecs"
            ],
            "type": "integer",
            "description": "Seconds elapsed since the last position sync update",
            "format": "int64"
          },
          "DriftMaxAgeSecs": {
            "required": [
              "DriftMaxAgeSecs"
            ],
            "type": "integer",
            "description": "Age in seconds of the oldest unresolved position drift for this variant",
            "format": "int64"
          },
          "InSyncCount": {
            "required": [
              "InSyncCount"
            ],
            "type": "integer",
            "description": "Number of positions currently in sync with the parent strategy",
            "format": "int64"
          },
          "DriftCount": {
            "required": [
              "DriftCount"
            ],
            "type": "integer",
            "description": "Total number of positions that have drifted from the parent strategy (confirmed + pending)",
            "format": "int64"
          },
          "DriftConfirmedCount": {
            "required": [
              "DriftConfirmedCount"
            ],
            "type": "integer",
            "description": "Number of drifted positions confirmed beyond the drift grace period",
            "format": "int64"
          },
          "DriftPendingCount": {
            "required": [
              "DriftPendingCount"
            ],
            "type": "integer",
            "description": "Number of drifted positions still within the drift grace period",
            "format": "int64"
          },
          "ErrorCount": {
            "required": [
              "ErrorCount"
            ],
            "type": "integer",
            "description": "Number of positions in an error state",
            "format": "int64"
          },
          "PausedCount": {
            "required": [
              "PausedCount"
            ],
            "type": "integer",
            "description": "Number of positions currently paused from signal transmission",
            "format": "int64"
          },
          "BlockedCount": {
            "required": [
              "BlockedCount"
            ],
            "type": "integer",
            "description": "Number of positions blocked from receiving signals",
            "format": "int64"
          },
          "BreakerCount": {
            "required": [
              "BreakerCount"
            ],
            "type": "integer",
            "description": "Number of positions halted by a circuit breaker",
            "format": "int64"
          },
          "MarketClosedCount": {
            "required": [
              "MarketClosedCount"
            ],
            "type": "integer",
            "description": "Number of positions not receiving signals because the market is closed",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "StrategySubscriberDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The Row Id",
            "format": "int64"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The StrategyId",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy name",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "SubscriptionId": {
            "required": [
              "SubscriptionId"
            ],
            "type": "integer",
            "description": "The Subscription Id",
            "format": "int64"
          },
          "SubscriberId": {
            "required": [
              "SubscriberId"
            ],
            "type": "integer",
            "description": "The Subscriber Id",
            "format": "int64"
          },
          "IsStrategyOwner": {
            "required": [
              "IsStrategyOwner"
            ],
            "type": "boolean",
            "description": "The PersonId is also the strategy owner"
          },
          "Alias": {
            "required": [
              "Alias"
            ],
            "type": "string",
            "description": "The Subscriber screen name",
            "nullable": true
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The Subscriber's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The Subscriber's last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The Subscriber email",
            "nullable": true
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "The strategy StartDate",
            "format": "date-time"
          },
          "EndDate": {
            "required": [
              "EndDate"
            ],
            "type": "string",
            "description": "The strategy EndDate, if it was killed",
            "format": "date-time",
            "nullable": true
          },
          "BasePrice": {
            "required": [
              "BasePrice"
            ],
            "type": "number",
            "description": "The strategy's base monthly price",
            "format": "double",
            "nullable": true
          },
          "Markup": {
            "required": [
              "Markup"
            ],
            "type": "number",
            "description": "The price markup",
            "format": "double",
            "nullable": true
          },
          "Cost": {
            "required": [
              "Cost"
            ],
            "type": "number",
            "description": "The strategy cost per period",
            "format": "double",
            "nullable": true
          },
          "LastTransactionDate": {
            "required": [
              "LastTransactionDate"
            ],
            "type": "string",
            "description": "The Last Transaction Date",
            "format": "date-time",
            "nullable": true
          },
          "LastTransactionAmount": {
            "required": [
              "LastTransactionAmount"
            ],
            "type": "number",
            "description": "The Last Transaction Amount",
            "format": "double",
            "nullable": true
          },
          "IsResale": {
            "required": [
              "IsResale"
            ],
            "type": "number",
            "description": "True if the strategy is bing resold through this White Label Site Id",
            "format": "double",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label Site Id",
            "format": "int64",
            "nullable": true
          },
          "GeoSiteId": {
            "required": [
              "GeoSiteId"
            ],
            "type": "string",
            "description": "The GeoSite Id",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubcribedStrategyDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The Subscription ID",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 SystemID",
            "format": "int64"
          },
          "StrategyName": {
            "required": [
              "StrategyName"
            ],
            "type": "string",
            "description": "The Strategy Name",
            "nullable": true
          },
          "IsSimulation": {
            "required": [
              "IsSimulation"
            ],
            "type": "boolean",
            "description": "TRUE if the person is Autotrading as a simulation"
          },
          "IsPaperTrade": {
            "required": [
              "IsPaperTrade"
            ],
            "type": "boolean",
            "description": "TRUE if the person is Autotrading in a PaperTrade account"
          },
          "IsAlive": {
            "required": [
              "IsAlive"
            ],
            "type": "boolean",
            "description": "TRUE if the subscription is active"
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "UTC Date when the subscription started",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "required": [
              "EndDate"
            ],
            "type": "string",
            "description": "UTC Date when the subscription ended",
            "format": "date-time",
            "nullable": true
          },
          "MonthlyCost": {
            "required": [
              "MonthlyCost"
            ],
            "type": "number",
            "description": "The subscription monthly cost",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubscriptionDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId subscribed",
            "format": "int64"
          },
          "LicenseType": {
            "required": [
              "LicenseType"
            ],
            "type": "string",
            "description": "The type of license",
            "nullable": true
          },
          "LicenseTypeId": {
            "required": [
              "LicenseTypeId"
            ],
            "type": "integer",
            "description": "The license type id",
            "format": "int64"
          },
          "StartDate": {
            "required": [
              "StartDate"
            ],
            "type": "string",
            "description": "The UTC start date of the subscription",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "required": [
              "EndDate"
            ],
            "type": "string",
            "description": "The UTC end date of the subscription",
            "format": "date-time",
            "nullable": true
          },
          "IsRecurring": {
            "required": [
              "IsRecurring"
            ],
            "type": "boolean",
            "description": "TRUE if the subscription automatically renews"
          },
          "Cost": {
            "required": [
              "Cost"
            ],
            "type": "number",
            "description": "The last subscription fee",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "SupportedSymbolDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int64"
          },
          "Currency": {
            "required": [
              "Currency"
            ],
            "type": "string",
            "description": "The instrument currency",
            "nullable": true
          },
          "Description": {
            "required": [
              "Description"
            ],
            "type": "string",
            "description": "The instrument description",
            "nullable": true
          },
          "PointValue": {
            "required": [
              "PointValue"
            ],
            "type": "number",
            "description": "The value of a point (used with futures)",
            "format": "double",
            "nullable": true
          },
          "TickSize": {
            "required": [
              "TickSize"
            ],
            "type": "number",
            "description": "The minimum ticksize (used with futures)",
            "format": "double",
            "nullable": true
          },
          "DecimalPrecision": {
            "required": [
              "DecimalPrecision"
            ],
            "type": "integer",
            "description": "The decimal precision of the price (used with futures)",
            "format": "int64",
            "nullable": true
          },
          "C2Symbol": {
            "$ref": "#/components/schemas/C2SymbolDTO"
          },
          "ExchangeSymbol": {
            "$ref": "#/components/schemas/ExchangeSymbolDTO"
          },
          "MarginRequirements": {
            "$ref": "#/components/schemas/MarginRequirementsDTO"
          },
          "BrokerMarginRequirements": {
            "required": [
              "BrokerMarginRequirements"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BrokerMarginRequirementsDTO"
            },
            "description": "The broker-specific margin requirements group",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateKYCScore": {
        "type": "object",
        "properties": {
          "UserToken": {
            "required": [
              "UserToken"
            ],
            "type": "string",
            "description": "The private user token supplied by C2",
            "nullable": true
          },
          "IsFinished": {
            "required": [
              "IsFinished"
            ],
            "type": "boolean",
            "description": "Set to TRUE when the KYC is finished by the client (optional)",
            "nullable": true
          },
          "IsApproved": {
            "required": [
              "IsApproved"
            ],
            "type": "boolean",
            "description": "Set to TRUE when the KYC is approved (optional)",
            "nullable": true
          },
          "Score": {
            "required": [
              "Score"
            ],
            "type": "integer",
            "description": "The KYC score to add (optional)",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateProfile": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStrategy": {
        "type": "object",
        "properties": {
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The C2 StrategyId",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateStrategyResponse": {
        "type": "object",
        "properties": {
          "Results": {
            "required": [
              "Results"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StrategyIdDTO"
            },
            "description": "Result array",
            "nullable": true
          },
          "ResponseStatus": {
            "$ref": "#/components/schemas/ResponseStatus"
          }
        },
        "additionalProperties": false
      },
      "WatchListDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The List Id",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "CreatedDate": {
            "required": [
              "CreatedDate"
            ],
            "type": "string",
            "description": "When the list was created (UTC)",
            "format": "date-time"
          },
          "ListName": {
            "required": [
              "ListName"
            ],
            "type": "string",
            "description": "The List Name",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WatchListMemberDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The Item Id",
            "format": "int64"
          },
          "AddedDate": {
            "required": [
              "AddedDate"
            ],
            "type": "string",
            "description": "When the item was added (UTC)",
            "format": "date-time"
          },
          "StrategyId": {
            "required": [
              "StrategyId"
            ],
            "type": "integer",
            "description": "The StrategyId",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "WhiteLabelSiteDTO": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The Site Id",
            "format": "int64"
          },
          "IBCode": {
            "required": [
              "IBCode"
            ],
            "type": "integer",
            "description": "Introducer Id",
            "format": "int64",
            "nullable": true
          },
          "Name": {
            "required": [
              "Name"
            ],
            "type": "string",
            "description": "The site name",
            "nullable": true
          },
          "Domain": {
            "required": [
              "Domain"
            ],
            "type": "string",
            "description": "The site domain",
            "nullable": true
          },
          "URL": {
            "required": [
              "URL"
            ],
            "type": "string",
            "description": "The full site URL",
            "nullable": true
          },
          "Type": {
            "required": [
              "Type"
            ],
            "type": "string",
            "description": "The site type (IB or affiliate)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WhiteLabelSiteMember": {
        "type": "object",
        "properties": {
          "Id": {
            "required": [
              "Id"
            ],
            "type": "integer",
            "description": "The PersonId",
            "format": "int64"
          },
          "Alias": {
            "required": [
              "Alias"
            ],
            "type": "string",
            "description": "The person's alias",
            "nullable": true
          },
          "FirstName": {
            "required": [
              "FirstName"
            ],
            "type": "string",
            "description": "The person's first name",
            "nullable": true
          },
          "LastName": {
            "required": [
              "LastName"
            ],
            "type": "string",
            "description": "The person's last name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The person's email. This is also the username when logging in to C2",
            "nullable": true
          },
          "Phone": {
            "required": [
              "Phone"
            ],
            "type": "string",
            "description": "The person's telephone",
            "nullable": true
          },
          "Language": {
            "required": [
              "Language"
            ],
            "type": "string",
            "description": "The person's preferred language",
            "nullable": true
          },
          "IsWhiteLabelSiteAdmin": {
            "required": [
              "IsWhiteLabelSiteAdmin"
            ],
            "type": "boolean",
            "description": "TRUE if the person is a White Label site administrator",
            "nullable": true
          },
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site Id",
            "format": "int64",
            "nullable": true
          },
          "WhiteLabelPermissions": {
            "required": [
              "WhiteLabelPermissions"
            ],
            "type": "string",
            "description": "The White Label site permissions",
            "nullable": true
          },
          "CountryCode": {
            "required": [
              "CountryCode"
            ],
            "type": "string",
            "description": "The person's country code",
            "nullable": true
          },
          "DivisionCode": {
            "required": [
              "DivisionCode"
            ],
            "type": "string",
            "description": "The person's division (usually the state) code",
            "nullable": true
          },
          "Created": {
            "required": [
              "Created"
            ],
            "type": "string",
            "description": "The UTC date when the person was created",
            "format": "date-time"
          },
          "LastLoggedIn": {
            "required": [
              "LastLoggedIn"
            ],
            "type": "string",
            "description": "The UTC date when the person last logged in",
            "format": "date-time"
          },
          "LastIP": {
            "required": [
              "LastIP"
            ],
            "type": "string",
            "description": "The person's last known IP",
            "nullable": true
          },
          "IsEmailValidated": {
            "required": [
              "IsEmailValidated"
            ],
            "type": "boolean",
            "description": "The Person's email validation status"
          },
          "IsAlive": {
            "required": [
              "IsAlive"
            ],
            "type": "boolean",
            "description": "The Person's user account status"
          },
          "IsManager": {
            "required": [
              "IsManager"
            ],
            "type": "boolean",
            "description": "True if the the person is a strategy manager"
          },
          "IsInvestor": {
            "required": [
              "IsInvestor"
            ],
            "type": "boolean",
            "description": "True if the the person is a strategy investor"
          },
          "GeoSite": {
            "required": [
              "GeoSite"
            ],
            "type": "string",
            "description": "The GeoSite",
            "nullable": true
          },
          "IsGeoSiteAdmin": {
            "required": [
              "IsGeoSiteAdmin"
            ],
            "type": "boolean",
            "description": "True if the the person is a GeoSite administrator",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationAccountStabilityDTO": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The brokerage account identifier",
            "nullable": true
          },
          "BrokerId": {
            "required": [
              "BrokerId"
            ],
            "type": "integer",
            "description": "The broker Id",
            "format": "int64"
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId of the account owner",
            "format": "int64"
          },
          "Scaling": {
            "required": [
              "Scaling"
            ],
            "type": "number",
            "description": "The scaling factor applied to this account",
            "format": "double",
            "nullable": true
          },
          "BrokerActive": {
            "required": [
              "BrokerActive"
            ],
            "type": "boolean",
            "description": "TRUE if the broker connection is active"
          },
          "C2Active": {
            "required": [
              "C2Active"
            ],
            "type": "boolean",
            "description": "TRUE if C2 considers this account active"
          },
          "SyncEnabled": {
            "required": [
              "SyncEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if autotrade sync is enabled"
          },
          "SyncDisableReason": {
            "required": [
              "SyncDisableReason"
            ],
            "type": "string",
            "description": "The reason sync is disabled, if applicable",
            "nullable": true
          },
          "Disabled": {
            "required": [
              "Disabled"
            ],
            "type": "boolean",
            "description": "TRUE if the account has been disabled"
          },
          "DisableReason": {
            "required": [
              "DisableReason"
            ],
            "type": "string",
            "description": "The reason the account was disabled, if applicable",
            "nullable": true
          },
          "AutotradeStatus": {
            "required": [
              "AutotradeStatus"
            ],
            "type": "string",
            "description": "The derived autotrade status for this account",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationAutotradeDTO": {
        "type": "object",
        "properties": {
          "Summary": {
            "$ref": "#/components/schemas/WlInstrumentationAutotradeSummaryDTO"
          },
          "Accounts": {
            "required": [
              "Accounts"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationAccountStabilityDTO"
            },
            "description": "Per-account autotrade stability details",
            "nullable": true
          },
          "BrokerageAccountsAvailable": {
            "required": [
              "BrokerageAccountsAvailable"
            ],
            "type": "integer",
            "description": "Number of autotrade account slots available for this WL site",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationAutotradeSummaryDTO": {
        "type": "object",
        "properties": {
          "Enabled": {
            "required": [
              "Enabled"
            ],
            "type": "integer",
            "description": "Number of accounts with autotrade enabled",
            "format": "int64"
          },
          "Configured": {
            "required": [
              "Configured"
            ],
            "type": "integer",
            "description": "Number of accounts that are configured for autotrade",
            "format": "int64"
          },
          "PendingAuth": {
            "required": [
              "PendingAuth"
            ],
            "type": "integer",
            "description": "Number of accounts pending broker authentication",
            "format": "int64"
          },
          "Exceptions": {
            "required": [
              "Exceptions"
            ],
            "type": "integer",
            "description": "Number of accounts in an exception state",
            "format": "int64"
          },
          "SyncDisabled": {
            "required": [
              "SyncDisabled"
            ],
            "type": "integer",
            "description": "Number of accounts with sync disabled",
            "format": "int64"
          },
          "BrokerInactive": {
            "required": [
              "BrokerInactive"
            ],
            "type": "integer",
            "description": "Number of accounts where the broker connection is inactive",
            "format": "int64"
          },
          "C2Inactive": {
            "required": [
              "C2Inactive"
            ],
            "type": "integer",
            "description": "Number of accounts where C2 is inactive",
            "format": "int64"
          },
          "Disabled": {
            "required": [
              "Disabled"
            ],
            "type": "integer",
            "description": "Number of accounts that are disabled",
            "format": "int64"
          },
          "ClosingModeOnly": {
            "required": [
              "ClosingModeOnly"
            ],
            "type": "integer",
            "description": "Number of accounts in closing-mode-only state",
            "format": "int64"
          },
          "HighScale": {
            "required": [
              "HighScale"
            ],
            "type": "integer",
            "description": "Number of accounts at high scaling",
            "format": "int64"
          },
          "NoNetLiquidationValue": {
            "required": [
              "NoNetLiquidationValue"
            ],
            "type": "integer",
            "description": "Number of accounts with no net liquidation value",
            "format": "int64"
          },
          "Total": {
            "required": [
              "Total"
            ],
            "type": "integer",
            "description": "Total number of autotraded accounts",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationExecutionDTO": {
        "type": "object",
        "properties": {
          "Account": {
            "required": [
              "Account"
            ],
            "type": "string",
            "description": "The brokerage account that executed the trade",
            "nullable": true
          },
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The C2 PersonId of the account owner",
            "format": "int64"
          },
          "SystemId": {
            "required": [
              "SystemId"
            ],
            "type": "integer",
            "description": "The strategy SystemId that generated the signal",
            "format": "int64"
          },
          "SystemName": {
            "required": [
              "SystemName"
            ],
            "type": "string",
            "description": "The strategy name",
            "nullable": true
          },
          "ExecutionId": {
            "required": [
              "ExecutionId"
            ],
            "type": "integer",
            "description": "The TI execution Id",
            "format": "int64"
          },
          "C2ExecutionId": {
            "required": [
              "C2ExecutionId"
            ],
            "type": "integer",
            "description": "The C2 execution Id, if linked",
            "format": "int64",
            "nullable": true
          },
          "ExecutedWhen": {
            "required": [
              "ExecutedWhen"
            ],
            "type": "integer",
            "description": "The execution timestamp as Unix seconds",
            "format": "int64"
          },
          "Symbol": {
            "required": [
              "Symbol"
            ],
            "type": "string",
            "description": "The traded symbol",
            "nullable": true
          },
          "Side": {
            "required": [
              "Side"
            ],
            "type": "string",
            "description": "The trade side (buy or sell)",
            "nullable": true
          },
          "Quantity": {
            "required": [
              "Quantity"
            ],
            "type": "number",
            "description": "The number of shares or contracts executed",
            "format": "double"
          },
          "Price": {
            "required": [
              "Price"
            ],
            "type": "number",
            "description": "The execution price",
            "format": "double"
          },
          "Commission": {
            "required": [
              "Commission"
            ],
            "type": "number",
            "description": "The commission charged for this execution",
            "format": "double",
            "nullable": true
          },
          "Origin": {
            "required": [
              "Origin"
            ],
            "type": "string",
            "description": "The origin of the execution",
            "nullable": true
          },
          "C2SignalId": {
            "required": [
              "C2SignalId"
            ],
            "type": "integer",
            "description": "The C2 signal Id linked to this execution, if available",
            "format": "int64",
            "nullable": true
          },
          "LeaderSystemId": {
            "required": [
              "LeaderSystemId"
            ],
            "type": "integer",
            "description": "The leader strategy SystemId from which the signal originated, if available",
            "format": "int64",
            "nullable": true
          },
          "FollowGenerated": {
            "required": [
              "FollowGenerated"
            ],
            "type": "boolean",
            "description": "TRUE if this execution was generated by the autotrade follow engine"
          },
          "ManualUserOrder": {
            "required": [
              "ManualUserOrder"
            ],
            "type": "boolean",
            "description": "TRUE if this execution was placed manually by the user"
          },
          "ExternalManualLike": {
            "required": [
              "ExternalManualLike"
            ],
            "type": "boolean",
            "description": "TRUE if this execution resembles a manual order placed externally"
          },
          "BrokerMarginAction": {
            "required": [
              "BrokerMarginAction"
            ],
            "type": "boolean",
            "description": "TRUE if this execution was a broker-initiated margin action"
          },
          "Unknown": {
            "required": [
              "Unknown"
            ],
            "type": "boolean",
            "description": "TRUE if this execution could not be classified"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationExportDTO": {
        "type": "object",
        "properties": {
          "WhiteLabelSiteId": {
            "required": [
              "WhiteLabelSiteId"
            ],
            "type": "integer",
            "description": "The White Label site Id",
            "format": "int64"
          },
          "WhiteLabelSiteName": {
            "required": [
              "WhiteLabelSiteName"
            ],
            "type": "string",
            "description": "The White Label site name",
            "nullable": true
          },
          "WhiteLabelSiteDomain": {
            "required": [
              "WhiteLabelSiteDomain"
            ],
            "type": "string",
            "description": "The White Label site domain",
            "nullable": true
          },
          "RequestedWindow": {
            "$ref": "#/components/schemas/WlInstrumentationRequestedWindowDTO"
          },
          "Filters": {
            "$ref": "#/components/schemas/WlInstrumentationFiltersDTO"
          },
          "SessionEventSummary": {
            "$ref": "#/components/schemas/WlInstrumentationSessionEventSummaryDTO"
          },
          "SessionEvents": {
            "required": [
              "SessionEvents"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationSessionEventDTO"
            },
            "description": "Individual session/login events for subscribers in the requested window",
            "nullable": true
          },
          "Autotrade": {
            "$ref": "#/components/schemas/WlInstrumentationAutotradeDTO"
          },
          "Subscriptions": {
            "required": [
              "Subscriptions"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationSubscriptionDTO"
            },
            "description": "Subscription records with revenue and autotrade enrichment",
            "nullable": true
          },
          "AccountStability": {
            "required": [
              "AccountStability"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationAccountStabilityDTO"
            },
            "description": "Per-account autotrade stability snapshot",
            "nullable": true
          },
          "Executions": {
            "required": [
              "Executions"
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WlInstrumentationExecutionDTO"
            },
            "description": "Execution records with signal-link and classification enrichment",
            "nullable": true
          },
          "Summary": {
            "$ref": "#/components/schemas/WlInstrumentationSummaryDTO"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationFiltersDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId filter, if provided",
            "format": "int64",
            "nullable": true
          },
          "SystemId": {
            "required": [
              "SystemId"
            ],
            "type": "integer",
            "description": "The SystemId filter, if provided",
            "format": "int64",
            "nullable": true
          },
          "SessionLimit": {
            "required": [
              "SessionLimit"
            ],
            "type": "integer",
            "description": "The maximum number of session events returned",
            "format": "int64"
          },
          "SubscriptionLimit": {
            "required": [
              "SubscriptionLimit"
            ],
            "type": "integer",
            "description": "The maximum number of subscriptions returned",
            "format": "int64"
          },
          "ExecutionLimit": {
            "required": [
              "ExecutionLimit"
            ],
            "type": "integer",
            "description": "The maximum number of executions returned",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationRequestedWindowDTO": {
        "type": "object",
        "properties": {
          "FromWhen": {
            "required": [
              "FromWhen"
            ],
            "type": "integer",
            "description": "The start of the requested window as a Unix timestamp (seconds)",
            "format": "int64"
          },
          "ToWhen": {
            "required": [
              "ToWhen"
            ],
            "type": "integer",
            "description": "The end of the requested window as a Unix timestamp (seconds)",
            "format": "int64"
          },
          "DaysBack": {
            "required": [
              "DaysBack"
            ],
            "type": "integer",
            "description": "The lookback window in days that was applied",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationSessionEventDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The PersonId of the user who generated the event",
            "format": "int64"
          },
          "EventType": {
            "required": [
              "EventType"
            ],
            "type": "string",
            "description": "The event type (e.g. ninjatrader_oauth_handshake, partner_webhook_login)",
            "nullable": true
          },
          "EventSource": {
            "required": [
              "EventSource"
            ],
            "type": "string",
            "description": "The source table or system that recorded the event",
            "nullable": true
          },
          "EventWhenUnix": {
            "required": [
              "EventWhenUnix"
            ],
            "type": "integer",
            "description": "The event timestamp as a Unix timestamp (seconds)",
            "format": "int64"
          },
          "EventWhen": {
            "required": [
              "EventWhen"
            ],
            "type": "string",
            "description": "The event timestamp as a formatted UTC string",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The subscriber's email address",
            "nullable": true
          },
          "FullName": {
            "required": [
              "FullName"
            ],
            "type": "string",
            "description": "The subscriber's full name",
            "nullable": true
          },
          "SourceIp": {
            "required": [
              "SourceIp"
            ],
            "type": "string",
            "description": "The IP address the event originated from",
            "nullable": true
          },
          "PartnerUserId": {
            "required": [
              "PartnerUserId"
            ],
            "type": "string",
            "description": "The partner-side user identifier, if provided",
            "nullable": true
          },
          "IsTrial": {
            "required": [
              "IsTrial"
            ],
            "type": "boolean",
            "description": "TRUE if the subscriber is on a trial"
          },
          "EmailVerified": {
            "required": [
              "EmailVerified"
            ],
            "type": "boolean",
            "description": "TRUE if the subscriber's email address has been verified"
          },
          "EventRecordId": {
            "required": [
              "EventRecordId"
            ],
            "type": "integer",
            "description": "The source record ID that generated this event",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationSessionEventSummaryDTO": {
        "type": "object",
        "properties": {
          "Total": {
            "required": [
              "Total"
            ],
            "type": "integer",
            "description": "Total number of session events in the requested window",
            "format": "int64"
          },
          "IsTruncated": {
            "required": [
              "IsTruncated"
            ],
            "type": "boolean",
            "description": "TRUE if session event rows were truncated due to the session_limit"
          },
          "NinjatraderOauthHandshake": {
            "required": [
              "NinjatraderOauthHandshake"
            ],
            "type": "integer",
            "description": "Number of NinjaTrader OAuth handshake events",
            "format": "int64"
          },
          "PartnerWebhookLogin": {
            "required": [
              "PartnerWebhookLogin"
            ],
            "type": "integer",
            "description": "Number of partner webhook login events",
            "format": "int64"
          },
          "TypeCounts": {
            "required": [
              "TypeCounts"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Count of session events by event type",
            "nullable": true
          },
          "SourceCounts": {
            "required": [
              "SourceCounts"
            ],
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Count of session events by event source",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationSubscriptionDTO": {
        "type": "object",
        "properties": {
          "PersonId": {
            "required": [
              "PersonId"
            ],
            "type": "integer",
            "description": "The subscriber's C2 PersonId",
            "format": "int64"
          },
          "FullName": {
            "required": [
              "FullName"
            ],
            "type": "string",
            "description": "The subscriber's full name",
            "nullable": true
          },
          "Email": {
            "required": [
              "Email"
            ],
            "type": "string",
            "description": "The subscriber's email address",
            "nullable": true
          },
          "Alias": {
            "required": [
              "Alias"
            ],
            "type": "string",
            "description": "The subscriber's C2 alias",
            "nullable": true
          },
          "SystemId": {
            "required": [
              "SystemId"
            ],
            "type": "integer",
            "description": "The strategy SystemId",
            "format": "int64"
          },
          "SystemName": {
            "required": [
              "SystemName"
            ],
            "type": "string",
            "description": "The strategy name",
            "nullable": true
          },
          "FamilyGuid": {
            "required": [
              "FamilyGuid"
            ],
            "type": "string",
            "description": "The multiplex family GUID, if this is a multiplexed strategy",
            "nullable": true
          },
          "FamilyName": {
            "required": [
              "FamilyName"
            ],
            "type": "string",
            "description": "The multiplex family name, if applicable",
            "nullable": true
          },
          "ParentSystemId": {
            "required": [
              "ParentSystemId"
            ],
            "type": "integer",
            "description": "The parent SystemId for multiplexed variants, if applicable",
            "format": "int64",
            "nullable": true
          },
          "ParentSystemName": {
            "required": [
              "ParentSystemName"
            ],
            "type": "string",
            "description": "The parent strategy name for multiplexed variants, if applicable",
            "nullable": true
          },
          "VariantGuid": {
            "required": [
              "VariantGuid"
            ],
            "type": "string",
            "description": "The variant GUID within the multiplex family, if applicable",
            "nullable": true
          },
          "VariantLabel": {
            "required": [
              "VariantLabel"
            ],
            "type": "string",
            "description": "The variant label within the multiplex family, if applicable",
            "nullable": true
          },
          "StartedWhen": {
            "required": [
              "StartedWhen"
            ],
            "type": "integer",
            "description": "The subscription start timestamp as Unix seconds",
            "format": "int64",
            "nullable": true
          },
          "StoppedWhen": {
            "required": [
              "StoppedWhen"
            ],
            "type": "integer",
            "description": "The subscription stop timestamp as Unix seconds, if stopped",
            "format": "int64",
            "nullable": true
          },
          "Alive": {
            "required": [
              "Alive"
            ],
            "type": "boolean",
            "description": "TRUE if the subscription is currently active"
          },
          "AmountCharged": {
            "required": [
              "AmountCharged"
            ],
            "type": "number",
            "description": "Total amount charged to the subscriber in the requested window",
            "format": "double"
          },
          "BasePrice": {
            "required": [
              "BasePrice"
            ],
            "type": "number",
            "description": "The base subscription price before markup",
            "format": "double"
          },
          "Markup": {
            "required": [
              "Markup"
            ],
            "type": "number",
            "description": "The WL markup applied to the base price",
            "format": "double"
          },
          "RefundAmount": {
            "required": [
              "RefundAmount"
            ],
            "type": "number",
            "description": "Total refund amount issued in the requested window",
            "format": "double"
          },
          "NetRevenue": {
            "required": [
              "NetRevenue"
            ],
            "type": "number",
            "description": "Net revenue after refunds in the requested window",
            "format": "double"
          },
          "LatestSessionEventWhenUnix": {
            "required": [
              "LatestSessionEventWhenUnix"
            ],
            "type": "integer",
            "description": "The most recent session event timestamp for this subscriber in the requested window, as Unix seconds",
            "format": "int64",
            "nullable": true
          },
          "LatestSessionEventType": {
            "required": [
              "LatestSessionEventType"
            ],
            "type": "string",
            "description": "The type of the most recent session event for this subscriber",
            "nullable": true
          },
          "LatestSessionEventSource": {
            "required": [
              "LatestSessionEventSource"
            ],
            "type": "string",
            "description": "The source of the most recent session event for this subscriber",
            "nullable": true
          },
          "AutotradeStatus": {
            "required": [
              "AutotradeStatus"
            ],
            "type": "string",
            "description": "The derived autotrade status for this subscriber's account",
            "nullable": true
          },
          "SyncEnabled": {
            "required": [
              "SyncEnabled"
            ],
            "type": "boolean",
            "description": "TRUE if autotrade sync is enabled for this subscriber",
            "nullable": true
          },
          "BrokerActive": {
            "required": [
              "BrokerActive"
            ],
            "type": "boolean",
            "description": "TRUE if the broker connection is active for this subscriber",
            "nullable": true
          },
          "C2Active": {
            "required": [
              "C2Active"
            ],
            "type": "boolean",
            "description": "TRUE if C2 considers this subscriber's account active",
            "nullable": true
          },
          "Disabled": {
            "required": [
              "Disabled"
            ],
            "type": "boolean",
            "description": "TRUE if this subscriber's autotrade account has been disabled",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WlInstrumentationSummaryDTO": {
        "type": "object",
        "properties": {
          "SubscriptionCount": {
            "required": [
              "SubscriptionCount"
            ],
            "type": "integer",
            "description": "Total number of subscriptions in the requested window",
            "format": "int64"
          },
          "ActiveSubscriptionCount": {
            "required": [
              "ActiveSubscriptionCount"
            ],
            "type": "integer",
            "description": "Number of currently active subscriptions",
            "format": "int64"
          },
          "SessionEventCount": {
            "required": [
              "SessionEventCount"
            ],
            "type": "integer",
            "description": "Total number of session events in the requested window",
            "format": "int64"
          },
          "ExecutionCount": {
            "required": [
              "ExecutionCount"
            ],
            "type": "integer",
            "description": "Total number of executions in the requested window",
            "format": "int64"
          },
          "TotalNetRevenue": {
            "required": [
              "TotalNetRevenue"
            ],
            "type": "number",
            "description": "Total net revenue across all subscriptions in the requested window",
            "format": "double"
          },
          "TotalAmountCharged": {
            "required": [
              "TotalAmountCharged"
            ],
            "type": "number",
            "description": "Total amount charged across all subscriptions in the requested window",
            "format": "double"
          },
          "TotalAmountRefunded": {
            "required": [
              "TotalAmountRefunded"
            ],
            "type": "number",
            "description": "Total amount refunded across all subscriptions in the requested window",
            "format": "double"
          },
          "AccountsWithStabilityIssue": {
            "required": [
              "AccountsWithStabilityIssue"
            ],
            "type": "integer",
            "description": "Number of accounts with at least one autotrade stability issue",
            "format": "int64"
          },
          "AccountStabilityCount": {
            "required": [
              "AccountStabilityCount"
            ],
            "type": "integer",
            "description": "Total number of account stability records returned",
            "format": "int64"
          },
          "SubscriptionsWithSessionEvent": {
            "required": [
              "SubscriptionsWithSessionEvent"
            ],
            "type": "integer",
            "description": "Number of subscriptions that had at least one session event in the window",
            "format": "int64"
          },
          "SubscriptionRowsTruncated": {
            "required": [
              "SubscriptionRowsTruncated"
            ],
            "type": "integer",
            "description": "Number of subscription rows omitted due to the subscription_limit",
            "format": "int64"
          },
          "SessionEventRowsTruncated": {
            "required": [
              "SessionEventRowsTruncated"
            ],
            "type": "integer",
            "description": "Number of session event rows omitted due to the session_limit",
            "format": "int64"
          },
          "ExecutionRowsTruncated": {
            "required": [
              "ExecutionRowsTruncated"
            ],
            "type": "integer",
            "description": "Number of execution rows omitted due to the execution_limit",
            "format": "int64"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "description": "Authorization header using the Bearer scheme. e.g. 'Bearer myAPIkey'. See https://swagger.io/docs/specification/v3_0/authentication/bearer-authentication/",
        "scheme": "bearer",
        "bearerFormat": "Bearer myAPIkey"
      }
    }
  },
  "security": [
    {}
  ],
  "tags": [
    {
      "name": "APIGateway"
    }
  ]
}