openapi: 3.0.4
info:
  title: Collective2 WhiteLabel API
  description: |-
    <p>📖 For full documentation, see the 
       <a href="https://trade.collective2.com/c2-api">Collective2 API Documentation</a>.
    </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: (optional) The WhiteLabelSiteId
          schema:
            type: integer
            format: int64
            nullable: true
        - name: GeoSite
          in: query
          description: (optional) The GeoSite
          schema:
            type: string
        - name: BrokerId
          in: query
          description: (optional) The BrokerId
          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/GetAutotradeApprovalStatus:
    get:
      summary: GetAutotradeApprovalStatus
      description: >-
        Poll one AutoTrade approval request created by StartAutotrade. Status is
        one of PendingCustomer (your customer has not finished the approval),
        Processing (approved; we are switching trading on), PendingBroker
        (approved; broker-side enablement pending, typically 5-10 business
        days), Completed (trading is on), Failed, Expired, or Superseded (a
        newer StartAutotrade or a StopAutotrade replaced it). ApprovalUrl is
        present only while the request is PendingCustomer. This poll is the
        source of truth; the completion webhook is a courtesy signal.
        Non-Paginated endpoint.
      operationId: C2_API_Autotrade/GetAutotradeApprovalStatus_GET
      parameters:
        - name: RequestId
          in: query
          description: The RequestId returned by StartAutotrade (an opaque UUID).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAutotradeApprovalStatusResponse'
        '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'
  /Autotrade/GetAutotradePlans:
    get:
      summary: GetAutotradePlans
      description: >-
        Return the AutoTrading license plans available on your White Label site,
        together with the site's fee policy: who pays the AutoTrade fee (the end
        customer, the site owner, or nobody) and, when the site owner is billed
        for usage, the published pricing tiers. The site is the one your API key
        belongs to; C2 admin keys may pass WhiteLabelSiteId to view any site.
        Non-Paginated endpoint.
      operationId: C2_API_Autotrade/GetAutotradePlans_GET
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAutotradePlansResponse'
        '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/StartSim:
    post:
      summary: StartSim
      description: >-
        Start simulated subscriptions for a customer on your White Label site. A
        simulated subscription lets the customer follow a strategy's aggregate
        performance without trading real money and without access to its open
        positions or live signals. You can request 1 to 8 strategies in one
        call; strategies that cannot be started are returned in the Skipped list
        with a reason rather than failing the whole request. The site is always
        the one your API key belongs to, and the customer must belong to that
        site. Non-Paginated endpoint.
      operationId: C2_API_Autotrade/StartSim_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartSim'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartSimResponse'
        '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/StopSim:
    delete:
      summary: StopSim
      description: >-
        Stop a customer's simulated subscription to a strategy on your White
        Label site. Only simulated subscriptions can be stopped through this
        endpoint; real subscriptions are refused. The site is always the one
        your API key belongs to, and the customer must belong to that site.
        Non-Paginated endpoint.
      operationId: C2_API_Autotrade/StopSim_DELETE
      parameters:
        - name: PersonId
          in: query
          description: >-
            The PersonId of the customer whose simulated subscription should be
            stopped
          required: true
          schema:
            type: integer
            format: int64
            nullable: true
        - name: StrategyId
          in: query
          description: The StrategyId of the simulated subscription to stop
          required: true
          schema:
            type: integer
            format: int64
            nullable: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StopSimResponse'
        '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'
  /Strategies/GetSiteCatalog:
    get:
      summary: GetSiteCatalog
      description: >-
        Return the catalog of strategies offered on your White Label site,
        priced as your customers see them. Each row shows the strategy's
        original name, the display name used on your site (when the site resells
        it under a custom name), the strategy's base monthly cost, any site
        markup in dollars, and the resulting monthly cost on your site. The site
        is the one your API key belongs to; C2 admin keys may pass
        WhiteLabelSiteId to view any site. Non-Paginated endpoint.
      operationId: C2_API_Strategies/GetSiteCatalog_GET
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSiteCatalogResponse'
        '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/UpdateSiteCatalog:
    post:
      summary: UpdateSiteCatalog
      description: >-
        Add strategies to, or remove strategies from, your White Label site's
        catalog — the API version of the console's add/remove-strategy toggle.
        Send a list of StrategyIds (1 to 100 per call) with Action "Add" or
        "Remove", and get a per-strategy result back. The operation is
        idempotent: a strategy already in the requested state is reported as a
        success ("already_in_catalog" / "not_in_catalog"), so replays are safe.
        Removal is refused per-strategy while the strategy still has active paid
        subscribers who are customers of your site (the result carries the
        count); simulated subscriptions never block removal. The site is the one
        your API key belongs to; C2 admin keys may pass WhiteLabelSiteId to
        manage any site. Non-Paginated endpoint.
      operationId: C2_API_Strategies/UpdateSiteCatalog_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSiteCatalog'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSiteCatalogResponse'
        '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'
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
    AutotradeApprovalStatusDTO:
      type: object
      properties:
        RequestId:
          required:
            - RequestId
          type: string
          description: The RequestId returned by StartAutotrade (an opaque UUID)
          nullable: true
        Status:
          required:
            - Status
          type: string
          description: >-
            PendingCustomer | Processing | PendingBroker | Completed | Failed |
            Expired | Superseded
          nullable: true
        ApprovalUrl:
          required:
            - ApprovalUrl
          type: string
          description: >-
            The customer approval page on your site's domain. Open it in front
            of your customer; present only while PendingCustomer.
          nullable: true
        CreatedUtc:
          required:
            - CreatedUtc
          type: string
          description: UTC creation date of the approval link.
          format: date-time
          nullable: true
        ExpiresUtc:
          required:
            - ExpiresUtc
          type: string
          description: UTC expiry date of the approval link.
          format: date-time
          nullable: true
        CompletedUtc:
          required:
            - CompletedUtc
          type: string
          description: Set when trading switched on (Status Completed)
          format: date-time
          nullable: true
        PersonId:
          required:
            - PersonId
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The Strategy ID
          format: int64
          nullable: true
        SupersededByRequestId:
          required:
            - SupersededByRequestId
          type: string
          description: >-
            When Status is Superseded: the RequestId of the newer request that
            replaced this one (null when a StopAutotrade resolved it).
          nullable: true
      additionalProperties: false
    AutotradeFeePolicyDTO:
      type: object
      properties:
        BillingModel:
          required:
            - BillingModel
          type: string
          description: >-
            How AutoTrading is billed on this site. One of: user_pays (each
            customer pays their own AutoTrade fee), site_owner_house_account
            (the site owner is billed monthly for customer AutoTrading usage),
            site_owner_credits (the site owner covers AutoTrading through a
            negotiated credits arrangement), no_charge (no AutoTrade fee applies
            on this site)
          nullable: true
        CustomerPaysAutotradeFee:
          required:
            - CustomerPaysAutotradeFee
          type: boolean
          description: True when the end customer pays the AutoTrade fee themselves
        AutotradePaidBySiteOwner:
          required:
            - AutotradePaidBySiteOwner
          type: boolean
          description: >-
            True when the site is configured for the site owner to cover
            customer AutoTrade fees
        AutotradeNoCharge:
          required:
            - AutotradeNoCharge
          type: boolean
          description: >-
            True when the site is configured so no AutoTrade fee is charged at
            all
        SiteGeoFlavor:
          required:
            - SiteGeoFlavor
          type: string
          description: >-
            The regional flavor of the site (for example us or eu). Some regions
            use different fee rules
          nullable: true
        MembershipIncludesAutotradingLicense:
          required:
            - MembershipIncludesAutotradingLicense
          type: boolean
          description: >-
            True when a site membership already includes the AutoTrading
            license, so customers do not purchase a plan separately
        HideInvestorAutotradePlans:
          required:
            - HideInvestorAutotradePlans
          type: boolean
          description: >-
            True when the site is configured to hide AutoTrade plan choices from
            investors
        SiteSettingsConflict:
          required:
            - SiteSettingsConflict
          type: boolean
          description: >-
            True when the site has more than one fee-configuration record on
            file and they disagree. Collective2 uses the most recent record;
            contact Collective2 support if this is unexpected
        SiteOwnerUsagePricing:
          $ref: '#/components/schemas/SiteOwnerUsagePricingDTO'
      additionalProperties: false
    AutotradePlanDTO:
      type: object
      properties:
        Id:
          required:
            - Id
          type: integer
          description: The unique numeric Id of this AutoTrading plan
          format: int64
        PlanCode:
          required:
            - PlanCode
          type: string
          description: >-
            A stable code identifying this plan (for example
            atplan_level1_monthly). Use this value when referring to the plan
            programmatically
          nullable: true
        Name:
          required:
            - Name
          type: string
          description: The customer-facing name of the plan (for example Solo)
          nullable: true
        BillingPeriod:
          required:
            - BillingPeriod
          type: string
          description: 'The billing period of the plan: monthly or annual'
          nullable: true
        MinStrategies:
          required:
            - MinStrategies
          type: integer
          description: >-
            The minimum number of strategies this plan allows a customer to
            AutoTrade
          format: int64
          nullable: true
        MaxStrategies:
          required:
            - MaxStrategies
          type: integer
          description: >-
            The maximum number of strategies this plan allows a customer to
            AutoTrade
          format: int64
          nullable: true
        PriceUSD:
          required:
            - PriceUSD
          type: number
          description: The price of the plan in US dollars per billing period
          format: double
          nullable: true
        MaxScalingPercent:
          required:
            - MaxScalingPercent
          type: integer
          description: >-
            The maximum position scaling percentage allowed under this plan (100
            = 100%)
          format: int64
          nullable: true
        DaysPerTerm:
          required:
            - DaysPerTerm
          type: integer
          description: The number of days in one billing term of this plan
          format: int64
          nullable: true
      additionalProperties: false
    AutotradePlansDTO:
      type: object
      properties:
        WhiteLabelSiteId:
          required:
            - WhiteLabelSiteId
          type: integer
          description: The White Label site Id these plans belong to
          format: int64
          nullable: true
        MonthlyPlans:
          required:
            - MonthlyPlans
          type: array
          items:
            $ref: '#/components/schemas/AutotradePlanDTO'
          description: >-
            The AutoTrading plans billed monthly, ordered from smallest to
            largest
          nullable: true
        AnnualPlans:
          required:
            - AnnualPlans
          type: array
          items:
            $ref: '#/components/schemas/AutotradePlanDTO'
          description: >-
            The AutoTrading plans billed annually, ordered from smallest to
            largest
          nullable: true
        FeePolicy:
          $ref: '#/components/schemas/AutotradeFeePolicyDTO'
      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. Note that
            declined accounts do not appear in this endpoint; use
            "GetPendingAccounts" to see accounts the broker has declined.
        BrokerAuthorizationStatus:
          required:
            - BrokerAuthorizationStatus
          type: string
          description: >-
            The broker authorization status of the account: "Approved" or
            "Pending". Declined accounts do not appear in this endpoint; use
            "GetPendingAccounts" to see accounts the broker has declined. May be
            absent on interfaces that do not evaluate authorization state
            (mirrors "Approved").
          nullable: true
        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
    CatalogUpdateResultDTO:
      type: object
      properties:
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The StrategyId this result is for
          format: int64
        Ok:
          required:
            - Ok
          type: boolean
          description: >-
            True when the strategy is now in the requested state — whether this
            call changed it or it was already there. False on a refusal (see
            Reason)
        Status:
          required:
            - Status
          type: string
          description: >-
            What happened: "added" (now offered on your site),
            "already_in_catalog" (idempotent add no-op), "removed" (no longer
            offered), "not_in_catalog" (idempotent remove no-op), or "refused"
            (see Reason). Branch on this code, never on Message prose
          nullable: true
        Reason:
          required:
            - Reason
          type: string
          description: >-
            Refusal reason when Status is "refused": "unknown_strategy" (no such
            strategy), "not_resellable" (the strategy is not offered for
            reselling), "not_visible_on_parent_site" (your catalog is limited to
            a parent site's selection and the parent does not offer it),
            "active_subscribers" (removal refused while the strategy still has
            active paid subscribers who are customers of your site — see
            ActiveSubscribers; simulated subscriptions never block removal), or
            "internal_error" (a transient server error on this strategy only —
            the rest of the batch was processed; retry this strategy)
          nullable: true
        Message:
          required:
            - Message
          type: string
          description: Human-readable detail for a refusal
          nullable: true
        ActiveSubscribers:
          required:
            - ActiveSubscribers
          type: integer
          description: >-
            On an "active_subscribers" refusal: how many active paid subscribers
            from your site still follow the strategy. Null otherwise
          format: int64
          nullable: true
      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
    GetAutotradeApprovalStatusResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/AutotradeApprovalStatusDTO'
          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
    GetAutotradePlansResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/AutotradePlansDTO'
          description: Result array
          nullable: true
        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
    GetSiteCatalogResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/SiteCatalogItemDTO'
          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
        Status:
          required:
            - Status
          type: string
          description: >-
            The broker authorization status of the account. "Pending" means the
            account is awaiting broker authorization. "Declined" means the
            broker declined the authorization request within the last 90 days;
            declined accounts are reported for 90 days after the decline. When
            an account is resubmitted after a decline, it appears once with its
            current status. Currently populated on the WhiteLabel API; absent
            means the interface did not evaluate decline state.
          nullable: true
        DeclinedUTC:
          required:
            - DeclinedUTC
          type: string
          description: >-
            The UTC date/time of the most recent broker decline. Only present
            when "Status" is "Declined".
          format: date-time
          nullable: true
        UtcDate:
          required:
            - UtcDate
          type: string
          description: The UTC date/time of the last strategy update.
          format: date-time
          nullable: true
        Account:
          required:
            - Account
          type: string
          description: The Brokerage Account
          nullable: true
        PersonId:
          required:
            - PersonId
          type: integer
          description: The C2 PersonId
          format: int64
          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
        Country:
          required:
            - Country
          type: string
          description: The person's country code
          nullable: true
        State:
          required:
            - State
          type: string
          description: The person's division (usually the state) code
          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
        GeoSiteId:
          required:
            - GeoSiteId
          type: string
          description: The account GeoSite
          nullable: true
        SiteDomain:
          required:
            - SiteDomain
          type: string
          description: The White-Label site base URL, if any
          nullable: true
        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
          nullable: true
        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
        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
        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
        EnabledFutures:
          required:
            - EnabledFutures
          type: boolean
          description: TRUE if futures are enabled for Autotrade
        EnabledForex:
          required:
            - EnabledForex
          type: boolean
          description: TRUE if forex are enabled for Autotrade
        EnabledStocks:
          required:
            - EnabledStocks
          type: boolean
          description: TRUE if stocks are enabled for Autotrade
        EnabledOptions:
          required:
            - EnabledOptions
          type: boolean
          description: TRUE if options are enabled for Autotrade
      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
    SimSkippedItemDTO:
      type: object
      properties:
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The StrategyId that was not started
          format: int64
        Reason:
          required:
            - Reason
          type: string
          description: >-
            Why the strategy was skipped. One of: not_available (the strategy is
            not offered for simulation), own_strategy (the person manages this
            strategy), not_on_site (the strategy is not offered on this site),
            already_subscribed (the person already has a live subscription to
            this strategy), create_failed (the simulation could not be created;
            retry later or contact support)
          nullable: true
      additionalProperties: false
    SimStartResultDTO:
      type: object
      properties:
        PersonId:
          required:
            - PersonId
          type: integer
          description: The PersonId the simulated subscriptions were requested for
          format: int64
        Created:
          required:
            - Created
          type: array
          items:
            $ref: '#/components/schemas/SimStartedItemDTO'
          description: The simulated subscriptions that were created by this request
          nullable: true
        Skipped:
          required:
            - Skipped
          type: array
          items:
            $ref: '#/components/schemas/SimSkippedItemDTO'
          description: >-
            The requested strategies that were not started, each with the reason
            why
          nullable: true
      additionalProperties: false
    SimStartedItemDTO:
      type: object
      properties:
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The StrategyId a simulated subscription was created for
          format: int64
        SubscriptionId:
          required:
            - SubscriptionId
          type: integer
          description: The Id of the newly created simulated subscription
          format: int64
      additionalProperties: false
    SimStopResultDTO:
      type: object
      properties:
        PersonId:
          required:
            - PersonId
          type: integer
          description: The PersonId whose simulated subscription was stopped
          format: int64
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The StrategyId the simulated subscription was for
          format: int64
        StoppedSubscriptionId:
          required:
            - StoppedSubscriptionId
          type: integer
          description: The Id of the simulated subscription that was stopped
          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
    SiteCatalogItemDTO:
      type: object
      properties:
        Id:
          required:
            - Id
          type: integer
          description: The row Id
          format: int64
        StrategyId:
          required:
            - StrategyId
          type: integer
          description: The StrategyId
          format: int64
        OriginalName:
          required:
            - OriginalName
          type: string
          description: The strategy's original name on Collective2
          nullable: true
        DisplayName:
          required:
            - DisplayName
          type: string
          description: >-
            The strategy name shown to customers on your site. Equal to
            OriginalName unless your site resells the strategy under a custom
            name
          nullable: true
        BaseMonthlyCost:
          required:
            - BaseMonthlyCost
          type: number
          description: >-
            The strategy's base monthly subscription cost in US dollars, before
            any site markup
          format: double
          nullable: true
        MarkupDollars:
          required:
            - MarkupDollars
          type: number
          description: >-
            The markup your site adds to the base monthly cost, in US dollars.
            Zero when the strategy is offered at its base price
          format: double
          nullable: true
        SiteMonthlyCost:
          required:
            - SiteMonthlyCost
          type: number
          description: >-
            The monthly subscription cost customers pay on your site, in US
            dollars (base cost plus markup)
          format: double
          nullable: true
        ShortDescription:
          required:
            - ShortDescription
          type: string
          description: >-
            The short marketing description shown for the strategy on your site,
            when one has been set. May contain HTML
          nullable: true
        IsAlive:
          required:
            - IsAlive
          type: boolean
          description: True when the strategy is live; false when it has been retired
      additionalProperties: false
    SiteOwnerUsagePricingDTO:
      type: object
      properties:
        Unit:
          required:
            - Unit
          type: string
          description: >-
            The unit the site owner is billed by. One of: autotrading_user_month
            (per end user who AutoTraded with a real broker account that month),
            user_strategy_month (per user, per strategy, per month under a
            negotiated credits arrangement)
          nullable: true
        TieredBy:
          required:
            - TieredBy
          type: string
          description: >-
            What determines which pricing tier applies (for example
            max_distinct_strategies_traded_in_month). Only present when Tiers
            are published
          nullable: true
        Note:
          required:
            - Note
          type: string
          description: A human-readable note describing how usage is measured and billed
          nullable: true
        Tiers:
          required:
            - Tiers
          type: array
          items:
            $ref: '#/components/schemas/SiteOwnerUsagePricingTierDTO'
          description: >-
            The published pricing tiers. Absent for negotiated arrangements
            where rates are agreed per partner
          nullable: true
      additionalProperties: false
    SiteOwnerUsagePricingTierDTO:
      type: object
      properties:
        MinStrategies:
          required:
            - MinStrategies
          type: integer
          description: >-
            The minimum number of distinct strategies traded in the month for
            this tier to apply
          format: int64
          nullable: true
        MaxStrategies:
          required:
            - MaxStrategies
          type: integer
          description: >-
            The maximum number of distinct strategies traded in the month for
            this tier to apply. Null means no upper limit
          format: int64
          nullable: true
        PriceUsdPerUserMonth:
          required:
            - PriceUsdPerUserMonth
          type: number
          description: >-
            The price in US dollars billed to the site owner per qualifying user
            per month at this tier
          format: double
          nullable: true
      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
    StartSim:
      type: object
      properties:
        PersonId:
          required:
            - PersonId
          type: integer
          description: >-
            The PersonId of the customer to start simulated subscriptions for.
            The customer must belong to your White Label site
          format: int64
          nullable: true
        StrategyIds:
          required:
            - StrategyIds
          type: array
          items:
            type: integer
            format: int64
          description: >-
            A list of StrategyIds to start simulated subscriptions for. Between
            1 and 8 unique strategies may be requested per call
          nullable: true
      additionalProperties: false
    StartSimResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/SimStartResultDTO'
          description: Result array
          nullable: true
        ResponseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    StopSimResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/SimStopResultDTO'
          description: Result array
          nullable: true
        ResponseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      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
        TradeOwnSystemPercent:
          required:
            - TradeOwnSystemPercent
          type: number
          description: The Trades his Own Strategy percent
          format: double
          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
        NoSubsAllowed:
          required:
            - NoSubsAllowed
          type: boolean
          description: TRUE if the strategy is closed to new subscribers
          nullable: true
        LatestTrade:
          required:
            - LatestTrade
          type: string
          description: UTC Date of the Strategy's last trade
          format: date-time
          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 this is a simulated ('Simulate This') subscription rather
            than a live subscription. Simulated subscriptions do not carry live
            signal rights: the API signal endpoints cover only strategies the
            person owns or holds a live (non-simulated) subscription to
        IsPaperTrade:
          required:
            - IsPaperTrade
          type: boolean
          description: >-
            TRUE if the person is AutoTrading this subscription 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
        NextChargeDate:
          required:
            - NextChargeDate
          type: string
          description: UTC Date when the subscription will next be charged
          format: date-time
          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
    UpdateSiteCatalog:
      type: object
      properties:
        Action:
          required:
            - Action
          type: string
          description: >-
            "Add" to offer the strategies on your site, "Remove" to stop
            offering them
          nullable: true
        StrategyIds:
          required:
            - StrategyIds
          type: array
          items:
            type: integer
            format: int64
          description: >-
            A list of StrategyIds to add or remove. Between 1 and 100 unique
            strategies may be requested per call.
          nullable: true
      additionalProperties: false
    UpdateSiteCatalogResponse:
      type: object
      properties:
        Results:
          required:
            - Results
          type: array
          items:
            $ref: '#/components/schemas/CatalogUpdateResultDTO'
          description: Result array
          nullable: true
        ResponseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      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
