openapi: 3.0.1
info:
  title: Collective2 General API
  description: API to automate your trading
  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-general.collective2.com
paths:
  /Autotrade/GetAutotradedStrategies:
    get:
      tags:
        - Autotrade
      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
            nullable: true
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Autotrade
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
        - 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
            nullable: true
        - name: LastName
          in: query
          description: The FirstName (optional). Not case-sensitive
          schema:
            type: string
            nullable: true
        - name: Email
          in: query
          description: The Email (optional)
          schema:
            type: string
            nullable: true
        - 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
            nullable: true
        - name: IPAddress
          in: query
          description: The person's last known IP address (optional)
          schema:
            type: string
            nullable: true
        - name: Phone
          in: query
          description: The Phone number (optional)
          schema:
            type: string
            nullable: true
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
        - 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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
        - 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:
            enum:
              - A
              - '0'
              - '1'
              - '2'
              - '4'
              - '5'
              - '6'
              - '8'
              - C
              - E
            type: string
            nullable: true
        - 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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Autotrade
      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
            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/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'
        '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:
      tags:
        - Autotrade
      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'
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
        - 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
            nullable: true
      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'
        '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:
      tags:
        - Autotrade
      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'
      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'
        '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:
      tags:
        - Autotrade
      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'
        '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:
      tags:
        - Autotrade
      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'
      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'
        '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:
      tags:
        - Autotrade
      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
            nullable: true
        - 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'
        '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:
      tags:
        - Autotrade
      summary: GetSimResults
      description: >-
        Return SIM trading results for all subscribers who are using “free
        sims.”. Only people who signed up at the site within the past 90 days
        are included. 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
      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'
        '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'
      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'
        '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:
      tags:
        - General
      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
      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'
        '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:
      tags:
        - General
      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
            nullable: true
        - name: LastName
          in: query
          description: The FirstName. Not case-sensitive (optional)
          schema:
            type: string
            nullable: true
        - name: Email
          in: query
          description: The Email. Not case-sensitive (optional)
          schema:
            type: string
            nullable: true
        - 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
            nullable: true
        - 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
            nullable: true
        - name: IPAddress
          in: query
          description: The person's last known IP address (optional)
          schema:
            type: string
            nullable: true
        - name: Phone
          in: query
          description: The verified Phone number (optional)
          schema:
            type: string
            nullable: true
        - name: IsAlive
          in: query
          description: The Person's Status (optional)
          schema:
            type: boolean
            nullable: true
        - name: IsEmailValidated
          in: query
          description: The Person's email validation status (optional)
          schema:
            type: boolean
            nullable: true
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - General
      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'
      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'
        '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:
      tags:
        - General
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          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'
        '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:
      tags:
        - General
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          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'
        '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:
      tags:
        - General
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          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'
        '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:
      tags:
        - General
      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'
        '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:
      tags:
        - Strategies
      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'
        '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:
      tags:
        - Strategies
      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:
            enum:
              - CS
              - FUT
              - OPT
              - FOR
            type: string
            nullable: true
        - name: CreatedBeforeDate
          in: query
          description: >-
            (optional) Filter used to search old stategies. The date must be in
            ISO 8601 Date Format.
          schema:
            type: string
            nullable: true
        - name: StrategyName
          in: query
          description: >-
            Search strategies on name (optional). Partial matches will be
            returned. Wildcards % and _ are supported
          schema:
            type: string
            nullable: true
        - name: StrategyOwnerPersonId
          in: query
          description: The C2 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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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:
            enum:
              - CS
              - FUT
              - OPT
              - FOR
            type: string
            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'
        '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:
      tags:
        - Strategies
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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
            nullable: true
        - name: EndDate
          in: query
          description: EndDate (Optional)
          schema:
            type: string
            nullable: true
        - 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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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'
      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'
        '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:
      tags:
        - Strategies
      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'
        '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:
      tags:
        - Strategies
      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'
      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'
        '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:
      tags:
        - Strategies
      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
          style: form
          schema:
            type: array
            items:
              type: integer
        - name: SecurityType
          in: query
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          schema:
            enum:
              - CS
              - FUT
              - OPT
              - FOR
            type: string
            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'
        '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:
      tags:
        - Strategies
      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
          style: form
          schema:
            type: array
            items:
              type: integer
        - name: SecurityType
          in: query
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          schema:
            enum:
              - CS
              - FUT
              - OPT
              - FOR
            type: string
            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'
        '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:
      tags:
        - Strategies
      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
            nullable: true
        - name: StartDate
          in: query
          description: UTC StartDate (Optional)
          schema:
            type: string
            nullable: true
        - name: EndDate
          in: query
          description: UTC EndDate (Optional)
          schema:
            type: string
            nullable: true
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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'
      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'
        '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:
      tags:
        - Strategies
      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'
      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'
        '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:
      tags:
        - Strategies
      summary: GetStrategyHistoricalEquity
      description: >-
        Returns general equity stats and a list of equity data points.
        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: DoNotAggregateDailyEquity
          in: query
          description: If TRUE, DailyEquity will not be aggregated by day
          schema:
            type: boolean
            nullable: true
      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'
        '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/SetDesiredPositions:
    post:
      tags:
        - Strategies
      summary: SetDesiredPositions
      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_Strategies/SetDesiredPositions_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetDesiredPositions'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetDesiredPositionsResponse'
        '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'
        '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/SearchHistoricalStrategies:
    post:
      tags:
        - Strategies
      summary: SearchHistoricalStrategies
      description: >-
        Request a list of strategies available for the nearest date.
        Non-Paginated endpoint.
      operationId: C2_API_Strategies/SearchHistoricalStrategies_POST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchHistoricalStrategies'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchHistoricalStrategiesResponse'
        '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'
        '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/GetHistoricalStrategiesStatsList:
    get:
      tags:
        - Strategies
      summary: GetHistoricalStrategiesStatsList
      description: >-
        Request a list of statistics available for the nearest date.
        Non-paginated endpoint.
      operationId: C2_API_Strategies/GetHistoricalStrategiesStatsList_GET
      parameters:
        - name: ReportDate
          in: query
          description: >-
            The date to look for. The server will automatically adjust the date
            to the nearest previous available day. Format must be YYYYMMDD.
          required: true
          schema:
            type: integer
            format: int64
            nullable: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetHistoricalStrategiesStatsListResponse'
        '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'
        '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:
      tags:
        - Strategies
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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
        - name: Cursor
          in: query
          description: The Cursor from the previous resultset
          schema:
            type: string
            nullable: true
        - name: Limit
          in: query
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          schema:
            type: integer
            format: int32
        - name: AscendingOrder
          in: query
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
          schema:
            type: boolean
      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'
        '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:
      tags:
        - Strategies
      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'
      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'
        '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:
      tags:
        - Strategies
      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
            nullable: true
        - name: ModificationAction
          in: query
          description: 'The change to make. Valid values are: ADD, DELETE'
          required: true
          schema:
            type: string
            nullable: true
        - 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
            nullable: 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'
        '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:
          type: integer
          format: int64
        accessKey:
          type: string
          nullable: true
        personId:
          type: integer
          format: int64
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
        role:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
        createDate:
          type: string
          format: date-time
          nullable: true
        deleteDate:
          type: string
          format: date-time
          nullable: true
        comment:
          type: string
          nullable: true
      additionalProperties: false
    AccountDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
          nullable: true
        account:
          type: string
          nullable: true
        brokerName:
          type: string
          nullable: true
        brokerId:
          type: integer
          format: int32
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        language:
          type: string
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
        geoSite:
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
        divisionCode:
          type: string
          nullable: true
        authenticatedDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    AccountsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AccountDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    AddPersonResponseDTO:
      type: object
      properties:
        personId:
          type: integer
          format: int64
        csrf:
          type: string
          nullable: true
      additionalProperties: false
    AddProfileResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AddPersonResponseDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    AddStrategy:
      title: AddStrategy
      required:
        - StrategyName
      type: object
      properties:
        StrategyName:
          type: string
          description: The desired strategy name
          nullable: true
        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
      description: AddStrategy
    AddStrategyResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategyIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    ApprovedAccount:
      type: object
      properties:
        personId:
          type: integer
          format: int64
          nullable: true
        addedDate:
          type: string
          format: date-time
        account:
          type: string
          nullable: true
        brokerId:
          type: integer
          format: int64
        connectionType:
          type: integer
          format: int32
        addedByPersonId:
          type: integer
          format: int64
          nullable: true
      additionalProperties: false
    AutotradeSettingsDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        language:
          type: string
          nullable: true
        siteDomain:
          type: string
          nullable: true
        brokerId:
          type: integer
          format: int32
        connection:
          type: string
          nullable: true
        introducingBrokerId:
          type: integer
          format: int32
        introducingBroker:
          type: string
          nullable: true
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        account:
          type: string
          nullable: true
        accountType:
          type: integer
          format: int32
        brokerUserID:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        salesRepId:
          type: integer
          format: int32
        salesRep:
          type: string
          nullable: true
        isTradeLeader:
          type: boolean
        isManualDiscardedPosition:
          type: boolean
          nullable: true
        isConfirmationNeeded:
          type: boolean
        isSyncEnabled:
          type: boolean
        isBrokerEnabled:
          type: boolean
        isAutotradeDisabled:
          type: boolean
        isAutotradeDisabledReason:
          type: string
          nullable: true
        syncDisabledReason:
          type: string
          nullable: true
        firstBrokerActivationDate:
          type: string
          format: date-time
          nullable: true
        netLiquidationValue:
          type: number
          format: double
          nullable: true
        netLiquidationValueDate:
          type: string
          format: date-time
          nullable: true
        virtualLimitOrdersEnabled:
          type: boolean
        scalingPercentage:
          type: number
          format: double
        settingsLastUpdateUTC:
          type: string
          format: date-time
        enabledFutures:
          type: boolean
        futuresLong:
          type: boolean
        futuresShort:
          type: boolean
        minFutures:
          type: integer
          format: int32
          nullable: true
        maxFutures:
          type: integer
          format: int32
          nullable: true
        enabledForex:
          type: boolean
        forexEnabledLong:
          type: boolean
        forexEnabledShort:
          type: boolean
        forexLotSize:
          type: integer
          format: int32
          nullable: true
        minForex:
          type: integer
          format: int32
          nullable: true
        maxForex:
          type: integer
          format: int32
          nullable: true
        enabledStocks:
          type: boolean
        stocksLong:
          type: boolean
        stocksShort:
          type: boolean
        maxStocksDollars:
          type: integer
          format: int32
          nullable: true
        tradeStocksAsCFD:
          type: boolean
        enabledOptions:
          type: boolean
        optionsLong:
          type: boolean
        optionsShort:
          type: boolean
        minOptions:
          type: integer
          format: int32
          nullable: true
        maxOptions:
          type: integer
          format: int32
          nullable: true
      additionalProperties: false
    AutotradedStrategyDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
        account:
          type: string
          nullable: true
        scalingPercentage:
          type: number
          format: double
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        brokerId:
          type: integer
          format: int32
          nullable: true
        brokerName:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
          nullable: true
        lastModified:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    BooleanResponseBase:
      type: object
      properties:
        results:
          type: array
          items:
            type: boolean
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    BrokerDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
          nullable: true
        isEnabled:
          type: boolean
        connectionName:
          type: string
          nullable: true
      additionalProperties: false
    C2SymbolDTO:
      type: object
      properties:
        fullSymbol:
          type: string
          nullable: true
        symbolType:
          type: string
          nullable: true
        underlying:
          type: string
          nullable: true
        expiry:
          type: string
          nullable: true
        putOrCall:
          type: string
          nullable: true
        strikePrice:
          type: number
          format: double
          nullable: true
        description:
          type: string
          nullable: true
      additionalProperties: false
    CancelAutotradeOrder:
      title: CancelAutotradeOrder
      required:
        - Account
        - PersonId
        - OrderId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        Account:
          type: string
          description: The Autotrade account
          nullable: true
        PersonId:
          type: integer
          description: The C2 PersonID
          format: int64
          nullable: true
        OrderId:
          type: string
          description: The OrderID to be cancelled
          nullable: true
      description: CancelAutotradeOrder
    CancelAutotradeOrderResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    CancelSignalResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    CancelStrategyOrder:
      title: CancelStrategyOrder
      required:
        - StrategyId
        - SignalId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        StrategyId:
          type: integer
          description: The Strategy ID
          format: int64
          nullable: true
        SignalId:
          type: integer
          description: The Signal ID to be cancelled
          format: int64
          nullable: true
      description: CancelStrategyOrder
    DashBoardItemDTO:
      type: object
      properties:
        personId:
          type: integer
          format: int64
        brokerName:
          type: string
          nullable: true
        account:
          type: string
          nullable: true
        strategyId:
          type: integer
          format: int64
          nullable: true
        strategyName:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
          nullable: true
        todayReturn:
          type: number
          format: double
          nullable: true
        totalReturn:
          type: number
          format: double
          nullable: true
      additionalProperties: false
    DesiredPositionResponseDTO:
      type: object
      properties:
        newSignals:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
        canceledSignals:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
      additionalProperties: false
    ExchangeSymbolDTO:
      type: object
      properties:
        symbol:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        securityExchange:
          type: string
          nullable: true
        securityType:
          type: string
          nullable: true
        maturityMonthYear:
          type: string
          nullable: true
        putOrCall:
          type: integer
          format: int32
          nullable: true
        strikePrice:
          type: number
          format: double
          nullable: true
        priceMultiplier:
          type: number
          format: double
      additionalProperties: false
    GetAccessKey:
      title: GetAccessKey
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      description: GetAccessKey
    GetAccessKeyResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AccessKeyDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetActiveOrdersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/OrderStatusDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetAutoTradeOpenPositions:
      title: GetAutoTradeOpenPositions
      required:
        - Account
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        Account:
          type: string
          description: Brokerage Account filter
          nullable: true
        StrategyId:
          type: integer
          description: (Optional) StrategyId filter
          format: int64
          nullable: true
      description: GetAutoTradeOpenPositions
    GetAutotradeActiveOrders:
      title: GetAutotradeActiveOrders
      required:
        - Account
        - PersonId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        Account:
          type: string
          description: The Brokerage Account
          nullable: true
        PersonId:
          type: integer
          description: The PersonId owning the account
          format: int64
          nullable: true
        StrategyId:
          type: integer
          description: (Optional) StrategyId filter
          format: int64
          nullable: true
      description: GetAutotradeActiveOrders
    GetAutotradeHistoricalOrders:
      title: GetAutotradeHistoricalOrders
      required:
        - Account
        - PersonId
      type: object
      properties:
        Account:
          type: string
          description: Brokerage Account filter
          nullable: true
        PersonId:
          type: integer
          description: The PersonId owning the account
          format: int64
          nullable: true
        BrokerId:
          type: integer
          description: BrokerId (Optional)
          format: int32
          nullable: true
        StrategyId:
          type: integer
          description: StrategyId (Optional)
          format: int64
          nullable: true
        OrderStatus:
          enum:
            - A
            - '0'
            - '1'
            - '2'
            - '4'
            - '5'
            - '6'
            - '8'
            - C
            - E
          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 (Optional)
          nullable: true
        StartDate:
          type: string
          description: StartDate (Optional)
          format: date-time
          nullable: true
        EndDate:
          type: string
          description: EndDate (Optional)
          format: date-time
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetAutotradeHistoricalOrders
    GetAutotradeHistoricalOrdersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/OrderStatusDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetAutotradeSettings:
      title: GetAutotradeSettings
      required:
        - PersonId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        PersonId:
          type: integer
          description: PersonId
          format: int64
          nullable: true
        Account:
          type: string
          description: (Optional) Account
          nullable: true
      description: GetAutotradeSettings
    GetAutotradeSettingsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AutotradeSettingsDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetAutotradedStrategies:
      title: GetAutotradedStrategies
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: PersonId
          format: int64
          nullable: true
        Account:
          type: string
          description: The Autotrade account (optional)
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetAutotradedStrategies
    GetAutotradedStrategiesResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AutotradedStrategyDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetAutotraders:
      title: GetAutotraders
      type: object
      properties:
        StrategyId:
          type: integer
          description: (Optional) StrategyId filter
          format: int64
          nullable: true
        BrokerId:
          type: integer
          description: (optional) The Autotrade BrokerId
          format: int32
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: (optional) The White Label Site Id
          format: int64
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetAutotraders
    GetAutotradersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/AutotradedStrategyDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetBrokers:
      title: GetBrokers
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        IncludeDisabled:
          type: boolean
          description: Include the disabled brokers. Default is FALSE. (optional)
          nullable: true
      description: GetBrokers
    GetBrokersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/BrokerDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetDashBoard:
      title: GetDashBoard
      required:
        - PersonId
        - Account
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        PersonId:
          type: integer
          description: PersonId
          format: int64
          nullable: true
        Account:
          type: string
          description: The brokerage Account
          nullable: true
      description: GetDashBoard
    GetDashBoardResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/DashBoardItemDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetHistoricalOrdersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/OrderStatusDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetHistoricalStrategiesStatsList:
      title: GetHistoricalStrategiesStatsList
      required:
        - ReportDate
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        ReportDate:
          type: integer
          description: >-
            The date to look for. The server will automatically adjust the date
            to the nearest previous available day. Format must be YYYYMMDD.
          format: int64
          nullable: true
      description: GetHistoricalStrategiesStatsList
    GetHistoricalStrategiesStatsListResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: string
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetInvestorPlanSubscriptions:
      title: GetInvestorPlanSubscriptions
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        ActiveOnly:
          type: boolean
          description: Set to FALSE to get all transactions (optional). Default is TRUE
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetInvestorPlanSubscriptions
    GetLeaderBoard:
      title: GetLeaderBoard
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        SecurityType:
          enum:
            - CS
            - FUT
            - OPT
            - FOR
          type: string
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          nullable: true
      description: GetLeaderBoard
    GetManagerPlanSubscriptions:
      title: GetManagerPlanSubscriptions
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        ActiveOnly:
          type: boolean
          description: Set to FALSE to get all transactions (optional). Default is TRUE
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetManagerPlanSubscriptions
    GetOpenPositionsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PositionDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetProfile:
      title: GetProfile
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        PersonId:
          type: integer
          description: >-
            The C2 PersonId. If omitted, the requester's information will be
            returned.
          format: int64
          nullable: true
      description: GetProfile
    GetSimResults:
      title: GetSimResults
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        PersonId:
          type: integer
          description: PersonId (optional)
          format: int64
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: The WhiteLabel SiteId (optional)
          format: int64
          nullable: true
        ActiveOnly:
          type: boolean
          description: >-
            Set to FALSE to get the full history of all Simulation results
            (optional). Default is TRUE
      description: GetSimResults
    GetSimResultsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SimResultDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetStrategyActiveOrders:
      title: GetStrategyActiveOrders
      required:
        - StrategyIds
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        StrategyIds:
          type: array
          items:
            type: integer
            format: int64
          description: A list of Strategy IDs
        SecurityType:
          enum:
            - CS
            - FUT
            - OPT
            - FOR
          type: string
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          nullable: true
      description: GetStrategyActiveOrders
    GetStrategyDetails:
      title: GetStrategyDetails
      required:
        - StrategyId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        StrategyId:
          type: integer
          description: The Strategy ID
          format: int64
          nullable: true
      description: GetStrategyDetails
    GetStrategyDetailsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategyDetailsDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetStrategyHistoricalEquity:
      title: GetStrategyHistoricalEquity
      required:
        - StrategyId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        StrategyId:
          type: integer
          description: The Strategy ID to get data for
          format: int64
          nullable: true
        DoNotAggregateDailyEquity:
          type: boolean
          description: If TRUE, DailyEquity will not be aggregated by day
          nullable: true
      description: GetStrategyHistoricalEquity
    GetStrategyHistoricalEquityResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategyHistoricalEquityDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetStrategyHistoricalOrders:
      title: GetStrategyHistoricalOrders
      type: object
      properties:
        StrategyId:
          type: integer
          description: 'StrategyId (optional: StrategyId or SignalId must be present)'
          format: int64
          nullable: true
        SignalId:
          type: integer
          description: 'SignalId (optional: StrategyId or SignalId must be present)'
          format: int64
          nullable: true
        OrderStatus:
          type: string
          description: >-
            Optional. Available values: '2' = Filled, '4' = Canceled, 'C' =
            Expired
          nullable: true
        StartDate:
          type: string
          description: UTC StartDate (Optional)
          nullable: true
        EndDate:
          type: string
          description: UTC EndDate (Optional)
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetStrategyHistoricalOrders
    GetStrategyOpenPositions:
      title: GetStrategyOpenPositions
      required:
        - StrategyIds
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        StrategyIds:
          type: array
          items:
            type: integer
            format: int64
          description: A list of Strategy IDs
        SecurityType:
          enum:
            - CS
            - FUT
            - OPT
            - FOR
          type: string
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          nullable: true
      description: GetStrategyOpenPositions
    GetSubscribedStrategies:
      title: GetSubscribedStrategies
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: PersonId
          format: int64
          nullable: true
        ActiveOnly:
          type: boolean
          description: Set to FALSE to get all transactions (optional). Default is TRUE
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetSubscribedStrategies
    GetSubscribedStrategiesResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SubcribedStrategyDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetSubscribers:
      title: GetSubscribers
      required:
        - StrategyId
      type: object
      properties:
        StrategyId:
          type: integer
          description: The C2 StrategyId
          format: int64
          nullable: true
        ActiveOnly:
          type: boolean
          description: >-
            Set to True to include only currently active subscribers. Default is
            False
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetSubscribers
    GetSubscribersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategySubscriberDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetSubscriptionRevenue:
      title: GetSubscriptionRevenue
      type: object
      properties:
        StrategyId:
          type: integer
          description: The C2 StrategyId (Optional)
          format: int64
          nullable: true
        StartDate:
          type: string
          description: StartDate (Optional)
          nullable: true
        EndDate:
          type: string
          description: EndDate (Optional)
          nullable: true
        StrategyOwnerPersonId:
          type: integer
          description: The Strategy Owner's PersonId (Optional)
          format: int64
          nullable: true
        SubscriberPersonId:
          type: integer
          description: The Subscriber's PersonId (Optional)
          format: int64
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: The White Label Site Id (Optional)
          format: int64
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetSubscriptionRevenue
    GetSubscriptionsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SubscriptionDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetWatchListMembers:
      title: GetWatchListMembers
      required:
        - PersonId
        - WatchListId
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        WatchListId:
          type: integer
          description: The WatchList Id
          format: int64
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetWatchListMembers
    GetWatchListMembersResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/WatchListMemberDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    GetWatchLists:
      title: GetWatchLists
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: GetWatchLists
    GetWatchListsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/WatchListDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    Hello:
      title: Hello
      required:
        - Name
      type: object
      properties:
        Name:
          type: string
          description: Your name (or any string)
          nullable: true
      description: Hello
    HelloResponse:
      type: object
      properties:
        results:
          type: array
          items:
            type: string
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    HistoricalStatDTO:
      title: HistoricalStatDTO
      type: object
      properties:
        Id:
          type: integer
          description: Report Id
          format: int64
        StatName:
          type: string
          description: The Statistic Name
          nullable: true
        Operator:
          type: string
          description: 'The logical operation to perform. Must be one of: > >= = <> < <='
          nullable: true
        StatValue:
          type: number
          description: The value
          format: double
          nullable: true
      description: HistoricalStatDTO
    HistoricalStrategyResponseDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        strategyId:
          type: integer
          format: int64
          nullable: true
        reportDate:
          type: integer
          format: int64
          nullable: true
        statistics:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalStatDTO'
          nullable: true
      additionalProperties: false
    ManageWatchList:
      title: ManageWatchList
      required:
        - PersonId
        - ModificationSource
        - ModificationAction
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
        WatchListId:
          type: integer
          description: >-
            The WatchList Id. Required except when ModificationAction=ADD and
            ModificationSource=LIST
          format: int64
          nullable: true
        ModificationSource:
          enum:
            - LIST
            - MEMBER
          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:
          enum:
            - ADD
            - DELETE
          type: string
          description: 'The change to make. Valid values are: ADD, DELETE'
          nullable: true
        StrategyId:
          type: integer
          description: The Strategy Id. Only required when ModificationSource=MEMBER
          format: int64
          nullable: true
        WatchListName:
          type: string
          description: >-
            The name of the watchlist. Only required when ModificationAction=ADD
            and ModificationSource=LIST
          nullable: true
      description: ManageWatchList
    NewAutotradeOrder:
      title: NewAutotradeOrder
      required:
        - Account
        - PersonId
        - Order
      type: object
      properties:
        Account:
          type: string
          description: The Autotrade account
          nullable: true
        PersonId:
          type: integer
          description: The C2 PersonID
          format: int64
          nullable: true
        Order:
          $ref: '#/components/schemas/OrderDTO'
      description: NewAutotradeOrder
    NewAutotradeOrderResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    NewSignalResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    NewStrategyOrder:
      title: NewStrategyOrder
      required:
        - Order
      type: object
      properties:
        Order:
          $ref: '#/components/schemas/OrderDTO'
      description: NewStrategyOrder
    OrderDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        orderId:
          type: string
          nullable: true
        strategyId:
          type: integer
          format: int64
          nullable: true
        strategyName:
          type: string
          nullable: true
        signalId:
          type: integer
          format: int64
          nullable: true
        orderType:
          enum:
            - '1'
            - '2'
            - '3'
          type: string
          nullable: true
          example: '1'
          x-enumDescriptions:
            '1': Market
            '2': Limit
            '3': Stop
        side:
          enum:
            - '1'
            - '2'
          type: string
          nullable: true
          example: '1'
          x-enumDescriptions:
            '1': Buy
            '2': Sell
        openClose:
          enum:
            - O
            - C
          type: string
          nullable: true
          example: O
          x-enumDescriptions:
            O: Open
            C: Close
        orderQuantity:
          type: number
          format: double
          nullable: true
        limit:
          type: number
          format: double
          nullable: true
        stop:
          type: number
          format: double
          nullable: true
        tif:
          enum:
            - '0'
            - '1'
          type: string
          nullable: true
          example: '0'
          x-enumDescriptions:
            '0': Day
            '1': GTC
        profitTarget:
          type: number
          format: double
          nullable: true
        stopLoss:
          type: number
          format: double
          nullable: true
        doNotCreateOCAGroup:
          type: boolean
          default: null
          nullable: true
        cancelReplaceSignalId:
          type: integer
          format: int64
          nullable: true
        parentSignalId:
          type: integer
          format: int64
          nullable: true
        doNotSyncToOpen:
          type: boolean
          default: null
          nullable: true
        c2Symbol:
          $ref: '#/components/schemas/C2SymbolDTO'
        exchangeSymbol:
          $ref: '#/components/schemas/ExchangeSymbolDTO'
        rejectMessage:
          type: string
          nullable: true
      additionalProperties: false
    OrderStatusDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        orderId:
          type: string
          nullable: true
        strategyId:
          type: integer
          format: int64
          nullable: true
        strategyName:
          type: string
          nullable: true
        signalId:
          type: integer
          format: int64
          nullable: true
        orderType:
          enum:
            - '1'
            - '2'
            - '3'
          type: string
          nullable: true
          example: '1'
          x-enumDescriptions:
            '1': Market
            '2': Limit
            '3': Stop
        side:
          enum:
            - '1'
            - '2'
          type: string
          nullable: true
          example: '1'
          x-enumDescriptions:
            '1': Buy
            '2': Sell
        openClose:
          enum:
            - O
            - C
          type: string
          nullable: true
          example: O
          x-enumDescriptions:
            O: Open
            C: Close
        orderQuantity:
          type: number
          format: double
          nullable: true
        limit:
          type: number
          format: double
          nullable: true
        stop:
          type: number
          format: double
          nullable: true
        tif:
          enum:
            - '0'
            - '1'
          type: string
          nullable: true
          example: '0'
          x-enumDescriptions:
            '0': Day
            '1': GTC
        profitTarget:
          type: number
          format: double
          nullable: true
        stopLoss:
          type: number
          format: double
          nullable: true
        doNotCreateOCAGroup:
          type: boolean
          default: null
          nullable: true
        cancelReplaceSignalId:
          type: integer
          format: int64
          nullable: true
        parentSignalId:
          type: integer
          format: int64
          nullable: true
        doNotSyncToOpen:
          type: boolean
          default: null
          nullable: true
        c2Symbol:
          $ref: '#/components/schemas/C2SymbolDTO'
        exchangeSymbol:
          $ref: '#/components/schemas/ExchangeSymbolDTO'
        rejectMessage:
          type: string
          nullable: true
        brokerId:
          type: integer
          format: int64
          nullable: true
        orderStatus:
          type: string
          nullable: true
        filledQuantity:
          type: number
          format: double
          nullable: true
        avgFillPrice:
          type: number
          format: double
          nullable: true
        postedDate:
          type: string
          format: date-time
          nullable: true
        signalType:
          type: integer
          format: int32
        info:
          type: string
          nullable: true
      additionalProperties: false
    PaginationProperties:
      type: object
      properties:
        prev_cursor:
          type: string
          nullable: true
        next_cursor:
          type: string
          nullable: true
      additionalProperties: false
    PerformanceBase:
      title: PerformanceBase
      type: object
      description: PerformanceBase
    PersonDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        alias:
          type: string
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        phone:
          type: string
          nullable: true
        isPhoneVerified:
          type: boolean
        language:
          type: string
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
        countryCode:
          type: string
          nullable: true
        divisionCode:
          type: string
          nullable: true
        created:
          type: string
          format: date-time
        lastLoggedIn:
          type: string
          format: date-time
        lastIP:
          type: string
          nullable: true
        isEmailValidated:
          type: boolean
        isAlive:
          type: boolean
        approvedAccounts:
          type: array
          items:
            $ref: '#/components/schemas/ApprovedAccount'
          nullable: true
        isManager:
          type: boolean
        isInvestor:
          type: boolean
        geoSite:
          type: string
          nullable: true
        isGeoSiteAdmin:
          type: boolean
          nullable: true
      additionalProperties: false
    PositionBase:
      type: object
      properties:
        quantity:
          type: number
          format: double
          nullable: true
        c2Symbol:
          $ref: '#/components/schemas/C2SymbolDTO'
        exchangeSymbol:
          $ref: '#/components/schemas/ExchangeSymbolDTO'
      additionalProperties: false
    PositionDTO:
      type: object
      properties:
        quantity:
          type: number
          format: double
          nullable: true
        c2Symbol:
          $ref: '#/components/schemas/C2SymbolDTO'
        exchangeSymbol:
          $ref: '#/components/schemas/ExchangeSymbolDTO'
        strategyId:
          type: integer
          format: int64
          nullable: true
        strategyName:
          type: string
          nullable: true
        currency:
          type: string
          nullable: true
        openedDate:
          type: string
          format: date-time
          nullable: true
        avgPx:
          type: number
          format: double
          nullable: true
      additionalProperties: false
    ProfileResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PersonDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    ReplaceAutotradeOrder:
      title: ReplaceAutotradeOrder
      required:
        - Account
        - PersonId
        - OrderId
        - Price
      type: object
      properties:
        Account:
          type: string
          description: The Autotrade account
          nullable: true
        PersonId:
          type: integer
          description: The C2 PersonID
          format: int64
          nullable: true
        OrderId:
          type: string
          description: The OrderID to be replaced
          nullable: true
        Price:
          type: number
          description: The new Order price
          format: double
          nullable: true
      description: ReplaceAutotradeOrder
    ReplaceAutotradeOrderResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    ReplaceSignalResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/SignalIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    ReplaceStrategyOrder:
      title: ReplaceStrategyOrder
      required:
        - Order
      type: object
      properties:
        Order:
          $ref: '#/components/schemas/OrderDTO'
      description: ReplaceStrategyOrder
    ResponseError:
      type: object
      properties:
        errorCode:
          type: string
          nullable: true
        fieldName:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
      additionalProperties: false
    ResponseStatus:
      type: object
      properties:
        errorCode:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ResponseError'
          nullable: true
      additionalProperties: false
    SearchAccounts:
      title: SearchAccounts
      type: object
      properties:
        Account:
          type: string
          description: The Autotrade account (optional)
          nullable: true
        PersonId:
          type: integer
          description: PersonId (optional)
          format: int64
          nullable: true
        BrokerId:
          type: integer
          description: The Autotrade BrokerId (optional)
          format: int32
          nullable: true
        FirstName:
          type: string
          description: The FirstName (optional). Not case-sensitive
          nullable: true
        LastName:
          type: string
          description: The FirstName (optional). Not case-sensitive
          nullable: true
        Email:
          type: string
          description: The Email (optional)
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: The White Label site Id (optional)
          format: int64
          nullable: true
        CountryCode:
          type: string
          description: The person's country code. Not case-sensitive (optional)
          nullable: true
        IPAddress:
          type: string
          description: The person's last known IP address (optional)
          nullable: true
        Phone:
          type: string
          description: The Phone number (optional)
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: SearchAccounts
    SearchHistoricalStrategies:
      title: SearchHistoricalStrategies
      required:
        - ReportDate
      type: object
      properties:
        ReportDate:
          type: integer
          description: >-
            The date to look for. The server will automatically adjust the date
            to the nearest previous available day. Format must be YYYYMMDD.
          format: int64
          nullable: true
        Requirements:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalStatDTO'
          description: >-
            (optional) Add a maximum of 6 statistics requirements here. Use the
            GetHistoricalStrategiesStatsList endpoint for a list of available
            statistics for the specified date
          nullable: true
      description: SearchHistoricalStrategies
    SearchHistoricalStrategiesResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalStrategyResponseDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    SearchProfiles:
      title: SearchProfiles
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId (optional)
          format: int64
          nullable: true
        FirstName:
          type: string
          description: The FirstName. Not case-sensitive (optional)
          nullable: true
        LastName:
          type: string
          description: The FirstName. Not case-sensitive (optional)
          nullable: true
        Email:
          type: string
          description: The Email. Not case-sensitive (optional)
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: The White Label site Id (optional)
          format: int64
          nullable: true
        CountryCode:
          type: string
          description: >-
            The person's country code. Not case-sensitive. (optional) See
            https://en.wikipedia.org/wiki/ISO_3166-2
          nullable: true
        DivisionCode:
          type: string
          description: >-
            The person's subdivision (e.g. provinces or states). Not
            case-sensitive. (optional) See
            https://en.wikipedia.org/wiki/ISO_3166-2
          nullable: true
        IPAddress:
          type: string
          description: The person's last known IP address (optional)
          nullable: true
        Phone:
          type: string
          description: The verified Phone number (optional)
          nullable: true
        IsAlive:
          type: boolean
          description: The Person's Status (optional)
          nullable: true
        IsEmailValidated:
          type: boolean
          description: The Person's email validation status (optional)
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: SearchProfiles
    SearchStrategies:
      title: SearchStrategies
      type: object
      properties:
        SecurityType:
          enum:
            - CS
            - FUT
            - OPT
            - FOR
          type: string
          description: >-
            (optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT',
            Options = 'OPT', Forex = 'FOR'
          nullable: true
        CreatedBeforeDate:
          type: string
          description: >-
            (optional) Filter used to search old stategies. The date must be in
            ISO 8601 Date Format.
          nullable: true
        StrategyName:
          type: string
          description: >-
            Search strategies on name (optional). Partial matches will be
            returned. Wildcards % and _ are supported
          nullable: true
        StrategyOwnerPersonId:
          type: integer
          description: The C2 PersonId (optional)
          format: int64
          nullable: true
        WhiteLabelSiteId:
          type: integer
          description: The White Label site Id (optional)
          format: int64
          nullable: true
        Cursor:
          type: string
          description: The Cursor from the previous resultset
          nullable: true
        Limit:
          type: integer
          description: >-
            Result size limit. We will enforce a max size limit for all
            endpoints. Default is 1000
          format: int32
        AscendingOrder:
          type: boolean
          description: >-
            Set to FALSE if you want to get the newest results first. Default is
            TRUE (oldest results first)
      description: SearchStrategies
    SearchStrategiesResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategyBasicDetailsDTO'
          nullable: true
        pagination:
          $ref: '#/components/schemas/PaginationProperties'
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    SetDesiredPositions:
      title: SetDesiredPositions
      required:
        - StrategyId
        - Positions
      type: object
      properties:
        StrategyId:
          type: integer
          description: The C2 StrategyId
          format: int64
          nullable: true
        Positions:
          type: array
          items:
            $ref: '#/components/schemas/PositionBase'
          description: The list of positions that must exist in the strategy
          nullable: true
      description: SetDesiredPositions
    SetDesiredPositionsResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/DesiredPositionResponseDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    SignalIdDTO:
      type: object
      properties:
        signalId:
          type: integer
          format: int64
        profitTargetSignalId:
          type: integer
          format: int64
          nullable: true
        stopLossSignalId:
          type: integer
          format: int64
          nullable: true
        exitSignalsOCAGroupId:
          type: integer
          format: int64
          nullable: true
      additionalProperties: false
    SimResultDTO:
      type: object
      properties:
        personId:
          type: integer
          format: int64
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        account:
          type: string
          nullable: true
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
          nullable: true
        startEquity:
          type: integer
          format: int64
        endEquity:
          type: integer
          format: int64
          nullable: true
        totalReturn:
          type: number
          format: double
        totalDelta:
          type: number
          format: double
        scalingFactor:
          type: integer
          format: int64
      additionalProperties: false
    StartAutotrade:
      title: StartAutotrade
      required:
        - Account
        - PersonId
        - BrokerId
        - StrategyId
        - ScalingPercentage
      type: object
      properties:
        Account:
          type: string
          description: The Autotrade account
          nullable: true
        PersonId:
          type: integer
          description: The C2 PersonID
          format: int64
          nullable: true
        BrokerId:
          type: integer
          description: The BrokerId
          format: int32
          nullable: true
        StrategyId:
          type: integer
          description: The StrategyId
          format: int64
          nullable: true
        ScalingPercentage:
          type: integer
          description: The Autotrade Scaling factor. e.g. Enter 105 for 105%
          format: int64
        FuturesEnabled:
          type: boolean
          description: >-
            (optional) TRUE to enable the Futures asset class when autotrading
            this strategy. Default is FALSE
        MaxFutures:
          type: integer
          description: >-
            (optional) Set a maximum number of contracts to hold in a position
            for this strategy
          format: int32
          nullable: true
        ForexEnabled:
          type: boolean
          description: >-
            (optional) TRUE to enable autotrading Forex for this strategy.
            Default is FALSE
        MaxForex:
          type: integer
          description: >-
            (optional) Set a maximum number of units (each unit on C2 is 10000
            currency units) to hold in a position for this strategy
          format: int32
          nullable: true
        StocksEnabled:
          type: boolean
          description: >-
            (optional) TRUE to enable autotrading Stocks for this strategy.
            Default is FALSE
        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:
          type: boolean
          description: >-
            (optional) TRUE to enable autotrading Options for this strategy.
            Default is FALSE
        ShortOptionsEnabled:
          type: boolean
          description: >-
            (optional) TRUE to enable the shorting of Options when autotrading
            this strategy. Default is FALSE
        MaxOptions:
          type: integer
          description: >-
            (optional) Set a maximum number of contracts to hold in a position
            for this strategy
          format: int32
          nullable: true
        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:
          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:
          type: string
          description: >-
            (optional) The Brokerage account username. Only needed for specific
            Brokers, please enquire with support at help@collective2.com
          nullable: true
        AccountPassword:
          type: string
          description: >-
            (optional) The Brokerage account password. Only needed for specific
            Brokers, please enquire with support at help@collective2.com
          nullable: true
      description: StartAutotrade
    StopAutotrade:
      title: StopAutotrade
      required:
        - Account
        - PersonId
        - StrategyId
      type: object
      allOf:
        - $ref: '#/components/schemas/PerformanceBase'
      properties:
        Account:
          type: string
          description: The Autotrade account
          nullable: true
        PersonId:
          type: integer
          description: The C2 PersonID
          format: int64
          nullable: true
        BrokerId:
          type: integer
          description: The BrokerId
          format: int32
          nullable: true
        StrategyId:
          type: integer
          description: The StrategyId
          format: int64
          nullable: true
        LeavePositionsOpen:
          type: boolean
          description: >-
            TRUE to leave positions open in the autotraded account. Default is
            FALSE
        TerminateStrategySubscription:
          type: boolean
          description: TRUE to stop the Strategy subscription. Default is FALSE
      description: StopAutotrade
    StrategyBasicDetailsDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        strategyId:
          type: integer
          format: int64
        isAlive:
          type: boolean
        isHidden:
          type: boolean
          nullable: true
        hiddenReason:
          type: string
          nullable: true
        isPrivate:
          type: boolean
          nullable: true
        strategyName:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
          nullable: true
        securityTypesEnabled:
          type: object
          additionalProperties:
            type: boolean
          nullable: true
        monthlyCost:
          type: number
          format: double
          nullable: true
        strategyOwnerId:
          type: integer
          format: int64
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
      additionalProperties: false
    StrategyDailyEquityDTO:
      type: object
      properties:
        date:
          type: string
          format: date-time
        equity:
          type: number
          format: double
        index:
          type: number
          format: double
      additionalProperties: false
    StrategyDetailsDTO:
      type: object
      properties:
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        isAlive:
          type: boolean
        startDate:
          type: string
          format: date-time
          nullable: true
        primarySecurityTypes:
          type: string
          nullable: true
        securityTypesEnabled:
          type: object
          additionalProperties:
            type: boolean
          nullable: true
        monthlyCost:
          type: number
          format: double
          nullable: true
        strategyOwnerId:
          type: integer
          format: int64
          nullable: true
        strategyOwnerName:
          type: string
          nullable: true
        suggestedCapital:
          type: integer
          format: int32
          nullable: true
        lastModified:
          type: string
          format: date-time
          nullable: true
        score:
          type: integer
          format: int32
          nullable: true
        isTradeOwnSystem:
          type: boolean
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
        isHidden:
          type: boolean
          nullable: true
        hiddenReason:
          type: string
          nullable: true
        isPrivate:
          type: boolean
          nullable: true
        aum:
          type: integer
          format: int32
          nullable: true
        auM_NumberOfAccounts:
          type: integer
          format: int32
          nullable: true
        return:
          type: number
          format: double
          nullable: true
        equity:
          type: number
          format: double
          nullable: true
        cash:
          type: number
          format: double
          nullable: true
        startingCash:
          type: number
          format: double
          nullable: true
        profitFactor:
          type: number
          format: double
          nullable: true
        cashDividends:
          type: number
          format: double
          nullable: true
        buyingPower:
          type: number
          format: double
          nullable: true
        marginUsed:
          type: number
          format: double
          nullable: true
        ageInDays:
          type: integer
          format: int32
          nullable: true
        modelAccountValue:
          type: number
          format: double
          nullable: true
        numTrades:
          type: integer
          format: int32
          nullable: true
        winTrades:
          type: number
          format: double
          nullable: true
        winMonths:
          type: number
          format: double
          nullable: true
        maxDrawdown:
          type: number
          format: double
          nullable: true
        avgWinDollars:
          type: number
          format: double
          nullable: true
        avgLossDollars:
          type: number
          format: double
          nullable: true
        correlationSP500:
          type: number
          format: double
          nullable: true
        alpha:
          type: number
          format: double
          nullable: true
        beta:
          type: number
          format: double
          nullable: true
        treynor:
          type: number
          format: double
          nullable: true
        avgLeverage:
          type: number
          format: double
          nullable: true
        maxLeverage:
          type: number
          format: double
          nullable: true
      additionalProperties: false
    StrategyHistoricalEquityDTO:
      type: object
      properties:
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
          nullable: true
        securityTypesEnabled:
          type: object
          additionalProperties:
            type: boolean
          nullable: true
        monthlyCost:
          type: number
          format: double
          nullable: true
        strategyOwnerId:
          type: integer
          format: int64
          nullable: true
        dailyEquity:
          type: array
          items:
            $ref: '#/components/schemas/StrategyDailyEquityDTO'
          nullable: true
        monthlyResults:
          type: array
          items:
            $ref: '#/components/schemas/StrategyMonthlyResultsDTO'
          nullable: true
      additionalProperties: false
    StrategyIdDTO:
      type: object
      properties:
        strategyId:
          type: integer
          format: int64
      additionalProperties: false
    StrategyMonthlyResultsDTO:
      type: object
      properties:
        month:
          type: integer
          format: int32
        monthName:
          type: string
          nullable: true
        yearZeroName:
          type: integer
          format: int32
        yearOneName:
          type: integer
          format: int32
        yearTwoName:
          type: integer
          format: int32
        yearThreeName:
          type: integer
          format: int32
        yearFourName:
          type: integer
          format: int32
        yearZeroReturn:
          type: number
          format: double
        yearOneReturn:
          type: number
          format: double
        yearTwoReturn:
          type: number
          format: double
        yearThreeReturn:
          type: number
          format: double
        yearFourReturn:
          type: number
          format: double
      additionalProperties: false
    StrategySubscriberDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        personId:
          type: integer
          format: int64
        subscriptionId:
          type: integer
          format: int64
        subscriberId:
          type: integer
          format: int64
        isStrategyOwner:
          type: boolean
        alias:
          type: string
          nullable: true
        firstName:
          type: string
          nullable: true
        lastName:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
          nullable: true
        basePrice:
          type: number
          format: double
          nullable: true
        markup:
          type: number
          format: double
          nullable: true
        cost:
          type: number
          format: double
          nullable: true
        lastTransactionDate:
          type: string
          format: date-time
          nullable: true
        lastTransactionAmount:
          type: number
          format: double
          nullable: true
        isResale:
          type: number
          format: double
          nullable: true
        whiteLabelSiteId:
          type: integer
          format: int64
          nullable: true
        geoSiteId:
          type: string
          nullable: true
      additionalProperties: false
    SubcribedStrategyDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
        strategyId:
          type: integer
          format: int64
        strategyName:
          type: string
          nullable: true
        isSimulation:
          type: boolean
        isPaperTrade:
          type: boolean
        isAlive:
          type: boolean
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
      additionalProperties: false
    SubscriptionDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
        licenseType:
          type: string
          nullable: true
        licenseTypeId:
          type: integer
          format: int64
        startDate:
          type: string
          format: date-time
          nullable: true
        endDate:
          type: string
          format: date-time
          nullable: true
        isRecurring:
          type: boolean
        cost:
          type: number
          format: double
      additionalProperties: false
    UpdateProfile:
      title: UpdateProfile
      required:
        - PersonId
      type: object
      properties:
        PersonId:
          type: integer
          description: The C2 PersonId
          format: int64
          nullable: true
      description: UpdateProfile
    UpdateStrategy:
      title: UpdateStrategy
      required:
        - StrategyId
      type: object
      properties:
        StrategyId:
          type: integer
          description: The C2 StrategyId
          format: int64
          nullable: true
      description: UpdateStrategy
    UpdateStrategyResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/StrategyIdDTO'
          nullable: true
        responseStatus:
          $ref: '#/components/schemas/ResponseStatus'
      additionalProperties: false
    WatchListDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        personId:
          type: integer
          format: int64
        createdDate:
          type: string
          format: date-time
        listName:
          type: string
          nullable: true
      additionalProperties: false
    WatchListMemberDTO:
      type: object
      properties:
        id:
          type: integer
          format: int64
        addedDate:
          type: string
          format: date-time
        strategyId:
          type: integer
          format: int64
        personId:
          type: integer
          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:
  - bearerAuth: []
