Collective2 General API (v4)

API to automate your trading

Download OpenAPI description
Languages
Servers
https://api4-general.collective2.com/

Schemas

AccessKeyDTO

idinteger(int64)

The row ID

accessKeystring or null

The API AccessKey

personIdinteger(int64)

The PersonId assigned to the AccessKey

firstNamestring or null

The FirstName. Not case-sensitive

lastNamestring or null

The FirstName. Not case-sensitive

emailstring or null

The Email. Not case-sensitive

whiteLabelSiteIdinteger or null(int64)

The White Label site Id

rolestring or null

The Role assigned to the AccessKey

messagestring or null

A human-frienly message

createDatestring or null(date-time)

The UTC DateTime when the key was created

deleteDatestring or null(date-time)

The UTC DateTime when the key was deleted

commentstring or null

A user comment about the key

{ "id": 0, "accessKey": "string", "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "whiteLabelSiteId": 0, "role": "string", "message": "string", "createDate": "2019-08-24T14:15:22Z", "deleteDate": "2019-08-24T14:15:22Z", "comment": "string" }

AccountDTO

idinteger(int64)

The row ID

personIdinteger or null(int64)

The C2 PersonId

accountstring or null

The Brokerage/SIM/Papertrade Account

brokerNamestring or null

The broker name

brokerIdinteger or null(int64)

The broker ID

firstNamestring or null

The FirstName. Not case-sensitive

lastNamestring or null

The FirstName. Not case-sensitive

emailstring or null

The Email

languagestring or null

The person's preferred language

whiteLabelSiteIdinteger or null(int64)

The White Label SiteId

geoSitestring or null

The account GeoSite

countryCodestring or null

The person's country code

divisionCodestring or null

The person's division (usually the state) code

authenticatedDatestring or null(date-time)

When the Account was Authenticated. Some broker connections (e.g. CQG, Rithmic, ETNA, ORBIS, StoneX, Tradovate, TransACT) require the broker to approve the account, while others (e.g. IB) don't, in which case the date will be when the client setup Autotrading. NULL if never approved by the broker and it is a broker that requires account approval

{ "id": 0, "personId": 0, "account": "string", "brokerName": "string", "brokerId": 0, "firstName": "string", "lastName": "string", "email": "string", "language": "string", "whiteLabelSiteId": 0, "geoSite": "string", "countryCode": "string", "divisionCode": "string", "authenticatedDate": "2019-08-24T14:15:22Z" }

AccountNAVDTO

accountstring or null

The Brokerage Account

startDatestring(date-time)

The StartDate of the report

endDatestring(date-time)

The EndDate of the report

totalDataDaysinteger(int32)

The total number of days where we have data

currencystring or null

The base currency of the account

startNAVnumber(double)

The Start NAV of the report

endNAVnumber(double)

The End NAV of the report

depositsnumber(double)

The total deposits in the account during the report period

withdrawalsnumber(double)

The total withdrawals in the account during the report period

return1Monthnumber(double)

1 month percent return for the account

return3Monthnumber(double)

3 month percent return for the account

return12Monthnumber(double)

12 month percent return for the account. This will be annualized if there is less than 12 months of data available

returnEntirePeriodnumber(double)

Percent return for the entire specified period

{ "account": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "totalDataDays": 0, "currency": "string", "startNAV": 0.1, "endNAV": 0.1, "deposits": 0.1, "withdrawals": 0.1, "return1Month": 0.1, "return3Month": 0.1, "return12Month": 0.1, "returnEntirePeriod": 0.1 }

AccountsResponse

resultsArray of objects or null(AccountDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "account": "string", "brokerName": "string", "brokerId": 0, "firstName": "string", "lastName": "string", "email": "string", "language": "string", "whiteLabelSiteId": 0, "geoSite": "string", "countryCode": "string", "divisionCode": "string", "authenticatedDate": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

AddPersonResponseDTO

personIdinteger(int64)

The PersonId

csrfstring or null

The CSRF to be used by the White Label Site. Only send in response when Person was created by a White Label Site admin

{ "personId": 0, "csrf": "string" }

AddProfileResponse

resultsArray of objects or null(AddPersonResponseDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "personId": 0, "csrf": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

AddStrategy

strategyNamestring or null

The desired strategy name

startingCapitalinteger or null(int64)

(Optional) The starting capital. Must be set when Account is not specified, ignored when Account is specified

{ "strategyName": "string", "startingCapital": 0 }

AddStrategyResponse

resultsArray of objects or null(StrategyIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "strategyId": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ApprovedAccount

personIdinteger or null(int64)

The PersonId

addedDatestring(date-time)

The UTC date when the record was created

accountstring or null

The Brokerage Account

brokerIdinteger(int64)

The BrokerId

connectionTypeinteger(int32)

The Connection type. 0 = Autotrade, 1 = BrokerTransmit

addedByPersonIdinteger or null(int64)

The PersonId who approved the account

{ "personId": 0, "addedDate": "2019-08-24T14:15:22Z", "account": "string", "brokerId": 0, "connectionType": 0, "addedByPersonId": 0 }

AutotradeSettingsDTO

idinteger(int64)

The unique Id

personIdinteger(int64)
firstNamestring or null
lastNamestring or null
emailstring or null
countrystring or null
statestring or null
languagestring or null
siteDomainstring or null
brokerIdinteger(int32)
connectionstring or null
introducingBrokerIdinteger(int32)
introducingBrokerstring or null
strategyIdinteger(int64)
strategyNamestring or null
accountstring or null
accountTypeinteger(int32)
brokerUserIDstring or null
currencystring or null
salesRepIdinteger(int32)
salesRepstring or null
isTradeLeaderboolean
isManualDiscardedPositionboolean or null
isConfirmationNeededboolean
isSyncEnabledboolean
willSyncToOpenStocksUSAboolean
willSyncToOpenStocksEuropeboolean
willSyncToOpenOptionsUSAboolean
willSyncToOpenOptionsEuropeboolean
willSyncToOpenFuturesUSAboolean
willSyncToOpenFuturesEuropeboolean
willSyncToOpenFuturesAsiaboolean
willSyncToOpenForexboolean
lastSyncStocksUSAstring or null(date-time)
lastSyncStocksEuropestring or null(date-time)
lastSyncOptionsUSAstring or null(date-time)
lastSyncOptionsEuropestring or null(date-time)
lastSyncFuturesUSAstring or null(date-time)
lastSyncFuturesEuropestring or null(date-time)
lastSyncFuturesAsiastring or null(date-time)
lastSyncForexstring or null(date-time)
isBrokerEnabledboolean
isAutotradeDisabledboolean
isAutotradeDisabledReasonstring or null
syncDisabledReasonstring or null
firstBrokerActivationDatestring or null(date-time)
netLiquidationValuenumber or null(double)
netLiquidationValueDatestring or null(date-time)
virtualLimitOrdersEnabledboolean
scalingPercentagenumber(double)
settingsLastUpdateUTCstring(date-time)
approvedboolean
enabledFuturesboolean
futuresLongboolean
futuresShortboolean
minFuturesinteger or null(int32)
maxFuturesinteger or null(int32)
enabledForexboolean
forexEnabledLongboolean
forexEnabledShortboolean
forexLotSizeinteger or null(int32)
minForexinteger or null(int32)
maxForexinteger or null(int32)
enabledStocksboolean
stocksLongboolean
stocksShortboolean
maxStocksDollarsinteger or null(int32)
tradeStocksAsCFDboolean
enabledOptionsboolean
optionsLongboolean
optionsShortboolean
minOptionsinteger or null(int32)
maxOptionsinteger or null(int32)
{ "id": 0, "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "country": "string", "state": "string", "language": "string", "siteDomain": "string", "brokerId": 0, "connection": "string", "introducingBrokerId": 0, "introducingBroker": "string", "strategyId": 0, "strategyName": "string", "account": "string", "accountType": 0, "brokerUserID": "string", "currency": "string", "salesRepId": 0, "salesRep": "string", "isTradeLeader": true, "isManualDiscardedPosition": true, "isConfirmationNeeded": true, "isSyncEnabled": true, "willSyncToOpenStocksUSA": true, "willSyncToOpenStocksEurope": true, "willSyncToOpenOptionsUSA": true, "willSyncToOpenOptionsEurope": true, "willSyncToOpenFuturesUSA": true, "willSyncToOpenFuturesEurope": true, "willSyncToOpenFuturesAsia": true, "willSyncToOpenForex": true, "lastSyncStocksUSA": "2019-08-24T14:15:22Z", "lastSyncStocksEurope": "2019-08-24T14:15:22Z", "lastSyncOptionsUSA": "2019-08-24T14:15:22Z", "lastSyncOptionsEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesUSA": "2019-08-24T14:15:22Z", "lastSyncFuturesEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesAsia": "2019-08-24T14:15:22Z", "lastSyncForex": "2019-08-24T14:15:22Z", "isBrokerEnabled": true, "isAutotradeDisabled": true, "isAutotradeDisabledReason": "string", "syncDisabledReason": "string", "firstBrokerActivationDate": "2019-08-24T14:15:22Z", "netLiquidationValue": 0.1, "netLiquidationValueDate": "2019-08-24T14:15:22Z", "virtualLimitOrdersEnabled": true, "scalingPercentage": 0.1, "settingsLastUpdateUTC": "2019-08-24T14:15:22Z", "approved": true, "enabledFutures": true, "futuresLong": true, "futuresShort": true, "minFutures": 0, "maxFutures": 0, "enabledForex": true, "forexEnabledLong": true, "forexEnabledShort": true, "forexLotSize": 0, "minForex": 0, "maxForex": 0, "enabledStocks": true, "stocksLong": true, "stocksShort": true, "maxStocksDollars": 0, "tradeStocksAsCFD": true, "enabledOptions": true, "optionsLong": true, "optionsShort": true, "minOptions": 0, "maxOptions": 0 }

AutotradedStrategyDTO

idinteger(int64)

The Subscription ID

personIdinteger(int64)

The C2 PersonId

accountstring or null

The Autotraded Account

scalingPercentagenumber(double)

The Autotraded Scaling Percentage

strategyIdinteger(int64)

The C2 SystemID

strategyNamestring or null

The Strategy Name

brokerIdinteger or null(int32)

The BrokerId

brokerNamestring or null

The broker name

startDatestring or null(date-time)

UTC Date when the person setup Autotrading for the Strategy

lastModifiedstring or null(date-time)

UTC Date when the person last modified the Autotrade settings for the Strategy

{ "id": 0, "personId": 0, "account": "string", "scalingPercentage": 0.1, "strategyId": 0, "strategyName": "string", "brokerId": 0, "brokerName": "string", "startDate": "2019-08-24T14:15:22Z", "lastModified": "2019-08-24T14:15:22Z" }

BooleanResponseBase

resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

BrokerDTO

idinteger(int64)

The unique Id

namestring or null

The broker name

isEnabledboolean

TRUE if broker is Live

connectionNamestring or null

The Autotrade name to show clients

{ "id": 0, "name": "string", "isEnabled": true, "connectionName": "string" }

C2SymbolDTO

fullSymbolstring or null

The full native C2 symbol e.g. BSRR2121Q22.5

symbolTypestring or null

The type of instrument. e.g. 'stock', 'option', 'future', 'forex'

underlyingstring or null

Option Underlying symbol. Read-only value sent in responses. It is ignored in requests.

expirystring or null

Option expiry. Format is 'May21'. Read-only value sent in responses. It is ignored in requests.

putOrCallstring or null

Option 'put' or 'call'. Read-only value sent in responses. It is ignored in requests.

strikePricenumber or null(double)

Option strike price. Read-only value sent in responses. It is ignored in requests.

descriptionstring or null

(optional) Instrument description. Read-only value sent in responses. It is ignored in requests.

{ "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }

CancelAutotradeOrderResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

CancelSignalResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

DashBoardItemDTO

personIdinteger(int64)

The C2 PersonId

brokerNamestring or null

The broker name, if any

accountstring or null

The Brokerage/SIM/Papertrade Account

strategyIdinteger or null(int64)

StrategyId

strategyNamestring or null

The Strategy Name

startDatestring or null(date-time)

UTC Date when the person setup Autotrading for the Strategy

todayReturnnumber or null(double)

Today's profit

totalReturnnumber or null(double)

The total profit

{ "personId": 0, "brokerName": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "todayReturn": 0.1, "totalReturn": 0.1 }

DesiredPositionResponseDTO

newSignalsArray of integers or null(int64)

New Signals

canceledSignalsArray of integers or null(int64)

Canceled Signals

{ "newSignals": [ 0 ], "canceledSignals": [ 0 ] }

DesiredPositionResponseDTOV2

newSignalsArray of objects or null(SignalResponse)

New Signals

canceledSignalsArray of objects or null(SignalResponse)

Canceled Signals

rejectedSignalsArray of objects or null(SignalResponse)

Rejected Signals

{ "newSignals": [ { "signalId": 0, "orderStatus": "string", "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string" } ], "canceledSignals": [ { "signalId": 0, "orderStatus": "string", "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string" } ], "rejectedSignals": [ { "signalId": 0, "orderStatus": "string", "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string" } ] }

ExchangeSymbolDTO

symbolstring or null

The exchange root symbol e.g. AAPL

currencystring or null

The 3-character ISO instrument currency. E.g. 'USD'

securityExchangestring or null

The MIC Exchange code. Set to DEFAULT for stocks, forex & options. For Futures, valid values are: XCME, XEUR, XICE, XLIF, XNYB, XNYM, XASX, XCBF, XCBT, XCEC, XKBT, XSES. See details at http://www.iso15022.org/MIC/homepageMIC.htm

securityTypestring or null

The SecurityType e.g. 'CS', 'FUT', 'OPT', 'FOR'

maturityMonthYearstring or null

The MaturityMonthYear e.g. '202503' (March 2025), or if the contract requires a day: '20210521' (May 21, 2025)

putOrCallinteger or null(int32)

The Option PutOrCall e.g. 0 = Put, 1 = Call

strikePricenumber or null(double)

The ISO Option Strike Price. Zero means none

priceMultipliernumber or null(double)

The multiplier to apply to the Exchange price to get the C2-formatted price. Read-only value sent in responses. It is ignored in requests.

{ "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }

GetAccessKeyResponse

resultsArray of objects or null(AccessKeyDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "accessKey": "string", "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "whiteLabelSiteId": 0, "role": "string", "message": "string", "createDate": "2019-08-24T14:15:22Z", "deleteDate": "2019-08-24T14:15:22Z", "comment": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetActiveOrdersResponse

resultsArray of objects or null(OrderStatusDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradeHistoricalOrdersResponse

resultsArray of objects or null(OrderStatusDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradeSettingsResponse

resultsArray of objects or null(AutotradeSettingsDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "country": "string", "state": "string", "language": "string", "siteDomain": "string", "brokerId": 0, "connection": "string", "introducingBrokerId": 0, "introducingBroker": "string", "strategyId": 0, "strategyName": "string", "account": "string", "accountType": 0, "brokerUserID": "string", "currency": "string", "salesRepId": 0, "salesRep": "string", "isTradeLeader": true, "isManualDiscardedPosition": true, "isConfirmationNeeded": true, "isSyncEnabled": true, "willSyncToOpenStocksUSA": true, "willSyncToOpenStocksEurope": true, "willSyncToOpenOptionsUSA": true, "willSyncToOpenOptionsEurope": true, "willSyncToOpenFuturesUSA": true, "willSyncToOpenFuturesEurope": true, "willSyncToOpenFuturesAsia": true, "willSyncToOpenForex": true, "lastSyncStocksUSA": "2019-08-24T14:15:22Z", "lastSyncStocksEurope": "2019-08-24T14:15:22Z", "lastSyncOptionsUSA": "2019-08-24T14:15:22Z", "lastSyncOptionsEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesUSA": "2019-08-24T14:15:22Z", "lastSyncFuturesEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesAsia": "2019-08-24T14:15:22Z", "lastSyncForex": "2019-08-24T14:15:22Z", "isBrokerEnabled": true, "isAutotradeDisabled": true, "isAutotradeDisabledReason": "string", "syncDisabledReason": "string", "firstBrokerActivationDate": "2019-08-24T14:15:22Z", "netLiquidationValue": 0.1, "netLiquidationValueDate": "2019-08-24T14:15:22Z", "virtualLimitOrdersEnabled": true, "scalingPercentage": 0.1, "settingsLastUpdateUTC": "2019-08-24T14:15:22Z", "approved": true, "enabledFutures": true, "futuresLong": true, "futuresShort": true, "minFutures": 0, "maxFutures": 0, "enabledForex": true, "forexEnabledLong": true, "forexEnabledShort": true, "forexLotSize": 0, "minForex": 0, "maxForex": 0, "enabledStocks": true, "stocksLong": true, "stocksShort": true, "maxStocksDollars": 0, "tradeStocksAsCFD": true, "enabledOptions": true, "optionsLong": true, "optionsShort": true, "minOptions": 0, "maxOptions": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradedStrategiesResponse

resultsArray of objects or null(AutotradedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "account": "string", "scalingPercentage": 0.1, "strategyId": 0, "strategyName": "string", "brokerId": 0, "brokerName": "string", "startDate": "2019-08-24T14:15:22Z", "lastModified": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradersResponse

resultsArray of objects or null(AutotradedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "account": "string", "scalingPercentage": 0.1, "strategyId": 0, "strategyName": "string", "brokerId": 0, "brokerName": "string", "startDate": "2019-08-24T14:15:22Z", "lastModified": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetBrokersResponse

resultsArray of objects or null(BrokerDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "name": "string", "isEnabled": true, "connectionName": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetDashBoardResponse

resultsArray of objects or null(DashBoardItemDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "personId": 0, "brokerName": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "todayReturn": 0.1, "totalReturn": 0.1 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetHistoricalOrdersResponse

resultsArray of objects or null(OrderStatusDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetOpenPositionsResponse

resultsArray of objects or null(PositionDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": {}, "exchangeSymbol": {}, "strategyName": "string", "currency": "string", "openedDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSimResultsResponse

resultsArray of objects or null(SimResultDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "startEquity": 0, "endEquity": 0, "totalReturn": 0.1, "totalDelta": 0.1, "scalingFactor": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyDetailsResponse

resultsArray of objects or null(StrategyDetailsDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "strategyId": 0, "strategyName": "string", "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "primarySecurityTypes": "string", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "strategyOwnerName": "string", "suggestedCapital": 0, "lastModified": "2019-08-24T14:15:22Z", "score": 0, "isTradeOwnSystem": true, "whiteLabelSiteId": 0, "isPrivate": true, "aum": 0, "auM_NumberOfAccounts": 0, "return": 0.1, "returnLabel": "string", "equity": 0.1, "cash": 0.1, "startingCash": 0.1, "profitFactor": 0.1, "cashDividends": 0.1, "buyingPower": 0.1, "marginUsed": 0.1, "ageInDays": 0, "modelAccountValue": 0.1, "numTrades": 0, "numWinners": 0, "numLosers": 0, "percentWinTrades": 0.1, "sumDollarWinners": 0.1, "sumDollarLosers": 0.1, "numMonths": 0, "winMonthsInUI": 0, "winMonths": 0.1, "winMonthsRatio": 0.1, "maxDrawdown": 0.1, "maxDrawdownDays": 0.1, "maxDrawdownStartDate": "string", "maxDrawdownEndDate": "string", "avgWinDollars": 0.1, "avgLossDollars": 0.1, "avgTradeDuration": 0.1, "correlationSP500": 0.1, "sP500Return": 0.1, "returnVsSP500": 0.1, "avgLeverage": 0.1, "maxLeverage": 0.1, "correlationToSP500": 0.1, "alpha": 0.1, "beta": 0.1, "treynor": 0.1, "sortino": 0.1, "sharpe": 0.1, "calmar": 0.1 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalClosedTradesResponse

resultsArray of objects or null(HistoricalTradeDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "tradeId": 0, "strategyId": 0, "openDate": "2019-08-24T14:15:22Z", "closeDate": "2019-08-24T14:15:22Z", "avgOpenFillPrice": 0.1, "avgCloseFillPrice": 0.1, "openedQuantity": 0.1, "closedQuantity": 0.1, "openSide": "1", "closeSide": "1", "profitLoss": 0.1, "commission": 0.1, "maxDrawdown": 0.1, "maxDrawdown_DateCalculated": "2019-08-24T14:15:22Z", "maxDrawdown_WorstPrice": 0.1, "maxDrawdown_WorstPriceDate": "2019-08-24T14:15:22Z", "maxDrawdown_StrategyEquity": 0.1, "maxDrawdown_EntryPrice": 0.1, "maxDrawdown_OpenQuantity": 0.1, "c2Symbol": {}, "exchangeSymbol": {} } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalEquityResponse

resultsArray of objects or null(StrategyHistoricalEquityDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "monthlyResults": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscribedStrategiesResponse

resultsArray of objects or null(SubcribedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "strategyId": 0, "strategyName": "string", "isSimulation": true, "isPaperTrade": true, "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "monthlyCost": 0.1 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscribersResponse

resultsArray of objects or null(StrategySubscriberDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "strategyId": 0, "strategyName": "string", "personId": 0, "subscriptionId": 0, "subscriberId": 0, "isStrategyOwner": true, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "basePrice": 0.1, "markup": 0.1, "cost": 0.1, "lastTransactionDate": "2019-08-24T14:15:22Z", "lastTransactionAmount": 0.1, "isResale": 0.1, "whiteLabelSiteId": 0, "geoSiteId": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscriptionsResponse

resultsArray of objects or null(SubscriptionDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "licenseType": "string", "licenseTypeId": 0, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "isRecurring": true, "cost": 0.1 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSupportedSymbolsResponse

resultsArray of objects or null(SupportedSymbolDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "currency": "string", "description": "string", "pointValue": 0.1, "tickSize": 0.1, "decimalPrecision": 0, "c2Symbol": {}, "exchangeSymbol": {}, "marginRequirements": {} } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetWatchListMembersResponse

resultsArray of objects or null(WatchListMemberDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "addedDate": "2019-08-24T14:15:22Z", "strategyId": 0, "personId": 0 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetWatchListsResponse

resultsArray of objects or null(WatchListDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "personId": 0, "createdDate": "2019-08-24T14:15:22Z", "listName": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

Hello

namestring or null

Your name (or any string)

{ "name": "string" }

HelloResponse

resultsArray of strings or null

Result array

responseStatusobject(ResponseStatus)
{ "results": [ "string" ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

HistoricalStatDTO

idinteger(int64)

Report Id

statNamestring or null

The Statistic Name

operatorstring or null

The logical operation to perform. Must be one of: > >= = <> < <=

statValuenumber or null(double)

The value

{ "id": 0, "statName": "string", "operator": "string", "statValue": 0.1 }

HistoricalTradeDTO

idinteger(int64)

The row ID

tradeIdinteger or null(int64)

The TradeId

strategyIdinteger or null(int64)

The C2 StrategyId

openDatestring or null(date-time)

DateTime when the trade was opened

closeDatestring or null(date-time)

DateTime when the trade was closed

avgOpenFillPricenumber or null(double)

The volume-weighted average opening fill price (VWAP)

avgCloseFillPricenumber or null(double)

The volume-weighted average closing fill price (VWAP)

openedQuantitynumber or null(double)

The total quantity opened

closedQuantitynumber or null(double)

The total quantity closed

openSidestring or null

'1' = Buy, '2' = Sell

Enum ValueDescription
1

Buy

2

Sell

Example: "1"
closeSidestring or null

'1' = Buy, '2' = Sell

Enum ValueDescription
1

Buy

2

Sell

Example: "1"
profitLossnumber or null(double)

The net profit or loss of the trade

commissionnumber or null(double)

The commission included in the ProfitLoss

maxDrawdownnumber or null(double)

The unrealized currency loss when the maximum peak-to-valley drawdown occurred for this trade

maxDrawdown_DateCalculatedstring or null(date-time)

The timestamp when this maximum peak-to-valley drawdown was calculated in New York time zone

maxDrawdown_WorstPricenumber or null(double)

The worst price during the peak-to-valley drawdown for this trade

maxDrawdown_WorstPriceDatestring or null(date-time)

The date in New York time zone when the worst price occurred during the peak-to-valley drawdown for this trade

maxDrawdown_StrategyEquitynumber or null(double)

The Strategy equity when the maximum peak-to-valley drawdown occurred for this trade

maxDrawdown_EntryPricenumber or null(double)

The price at which the trade causing the maximum equity drop

maxDrawdown_OpenQuantitynumber or null(double)

The size of the trade (number of units) that initiated the maximum peak-to-valley drawdown

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
{ "id": 0, "tradeId": 0, "strategyId": 0, "openDate": "2019-08-24T14:15:22Z", "closeDate": "2019-08-24T14:15:22Z", "avgOpenFillPrice": 0.1, "avgCloseFillPrice": 0.1, "openedQuantity": 0.1, "closedQuantity": 0.1, "openSide": "1", "closeSide": "1", "profitLoss": 0.1, "commission": 0.1, "maxDrawdown": 0.1, "maxDrawdown_DateCalculated": "2019-08-24T14:15:22Z", "maxDrawdown_WorstPrice": 0.1, "maxDrawdown_WorstPriceDate": "2019-08-24T14:15:22Z", "maxDrawdown_StrategyEquity": 0.1, "maxDrawdown_EntryPrice": 0.1, "maxDrawdown_OpenQuantity": 0.1, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 } }

ManageWatchList

personIdinteger or null(int64)

The C2 PersonId

watchListIdinteger or null(int64)

The WatchList Id. Required except when ModificationAction=ADD and ModificationSource=LIST

modificationSourcestring or null

The Type of list to modify. Valid values are 'LIST' (for the whole watchlist), 'MEMBER' (for the list items)

modificationActionstring or null

The change to make. Valid values are: ADD, DELETE

strategyIdinteger or null(int64)

The Strategy Id. Only required when ModificationSource=MEMBER

watchListNamestring or null

The name of the watchlist. Only required when ModificationAction=ADD and ModificationSource=LIST

{ "personId": 0, "watchListId": 0, "modificationSource": "string", "modificationAction": "string", "strategyId": 0, "watchListName": "string" }

MarginRequirementsDTO

initialnumber or null(double)

Upfront amount needed to trade the instrument

maintenancenumber or null(double)

Minimum account balance required to keep the position open

{ "initial": 0.1, "maintenance": 0.1 }

NewAutotradeOrder

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

orderobject(OrderDTO)
{ "account": "string", "personId": 0, "order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string" } }

NewAutotradeOrderResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

NewSignalResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

NewStrategyOrder

orderobject(OrderDTO)
{ "order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string" } }

OrderDTO

idinteger(int64)

The row ID. Read-only. Only present in response

orderIdstring or null

The OrderId. Only required in NewAutotradeOrder and ReplaceAutotradeOrder endpoints

strategyIdinteger or null(int64)

The C2 StrategyId

strategyNamestring or null

The C2 Strategy name. Read-only. Only present in response

signalIdinteger or null(int64)

Only required in ReplaceAutotradeOrder endpoint. The C2 SignalId

avgPxnumber or null(double)

The order average fill price

orderTypestring or null

'1' = Market, '2' = Limit, '3' = Stop

Enum ValueDescription
1

Market

2

Limit

3

Stop

Example: "1"
sidestring or null

'1' = Buy, '2' = Sell

Enum ValueDescription
1

Buy

2

Sell

Example: "1"
openClosestring or null

Only required in ReplaceAutotradeOrder endpoint. 'O' = Open, 'C' = Close

Enum ValueDescription
O

Open

C

Close

Example: "O"
orderQuantitynumber or null(double)

The unsigned order quantity

limitnumber or null(double)

The C2-formatted Limit Price

stopnumber or null(double)

The C2-formatted Stop Price

tifstring or null

The time in force. 0 = Day, 1 = Good Till Cancel (GTC)

Enum ValueDescription
0

Day

1

GTC

Example: "0"
profitTargetnumber or null(double)

Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order

stopLossnumber or null(double)

Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order

doNotCreateOCAGroupboolean or null

Only available in NewStrategyOrder endpoint. Default is false. Used to indicate the ProfitTarget and StopLoss orders should not be added to a OCA group. Each exit order will be managed separately

Default null
cancelReplaceSignalIdinteger or null(int64)

Used to specify that this order replaces another

parentSignalIdinteger or null(int64)

Used to specify that this order is conditional (a child) on another

parkedUntilDatestring or null(date-time)

The New-York date/time when the signal should be released. Applies only to Strategy signals

Default null
doNotSyncToOpenboolean or null

Used to indicate this order should not be synched in the brokerage account. Only applies to Opening non-market orders

Default null
c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
rejectMessagestring or null

The order rejection message. Only available in response when OrderStatus = '8' (Rejected)

{ "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string" }

OrderStatusDTO

idinteger(int64)

The row ID. Read-only. Only present in response

orderIdstring or null

The OrderId. Only required in NewAutotradeOrder and ReplaceAutotradeOrder endpoints

strategyIdinteger or null(int64)

The C2 StrategyId

strategyNamestring or null

The C2 Strategy name. Read-only. Only present in response

signalIdinteger or null(int64)

Only required in ReplaceAutotradeOrder endpoint. The C2 SignalId

avgPxnumber or null(double)

The order average fill price

orderTypestring or null

'1' = Market, '2' = Limit, '3' = Stop

Enum ValueDescription
1

Market

2

Limit

3

Stop

Example: "1"
sidestring or null

'1' = Buy, '2' = Sell

Enum ValueDescription
1

Buy

2

Sell

Example: "1"
openClosestring or null

Only required in ReplaceAutotradeOrder endpoint. 'O' = Open, 'C' = Close

Enum ValueDescription
O

Open

C

Close

Example: "O"
orderQuantitynumber or null(double)

The unsigned order quantity

limitnumber or null(double)

The C2-formatted Limit Price

stopnumber or null(double)

The C2-formatted Stop Price

tifstring or null

The time in force. 0 = Day, 1 = Good Till Cancel (GTC)

Enum ValueDescription
0

Day

1

GTC

Example: "0"
profitTargetnumber or null(double)

Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order

stopLossnumber or null(double)

Only available in NewStrategyOrder endpoint. The C2-formatted Price at which to place a exit conditional order

doNotCreateOCAGroupboolean or null

Only available in NewStrategyOrder endpoint. Default is false. Used to indicate the ProfitTarget and StopLoss orders should not be added to a OCA group. Each exit order will be managed separately

Default null
cancelReplaceSignalIdinteger or null(int64)

Used to specify that this order replaces another

parentSignalIdinteger or null(int64)

Used to specify that this order is conditional (a child) on another

parkedUntilDatestring or null(date-time)

The New-York date/time when the signal should be released. Applies only to Strategy signals

Default null
doNotSyncToOpenboolean or null

Used to indicate this order should not be synched in the brokerage account. Only applies to Opening non-market orders

Default null
c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
rejectMessagestring or null

The order rejection message. Only available in response when OrderStatus = '8' (Rejected)

brokerIdinteger or null(int64)

BrokerId

orderStatusstring or null

'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace

filledQuantitynumber or null(double)

The unsigned quantity filled

avgFillPricenumber or null(double)

The average fill price, if FilledQuantity > 0

postedDatestring or null(date-time)

UTC DateTime when the order was posted

signalTypeinteger(int32)

The type of signal. 1 = StrategySignal, 4 = ManualSignal, 5 = StrategySignalManualOverride, 6 = AutoStopLoss

infostring or null

Detailed information about the order, if available

{ "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" }

PaginationProperties

prev_cursorstring or null

The previous Pagination Cursor

next_cursorstring or null

The next Pagination Cursor

{ "prev_cursor": "string", "next_cursor": "string" }

PersonDTO

idinteger(int64)

The PersonId

aliasstring or null

The person's alias

firstNamestring or null

The person's first name

lastNamestring or null

The person's last name

emailstring or null

The person's email. This is also the username when logging in to C2

phonestring or null

The person's telephone

isPhoneVerifiedboolean

True if the the person's telephone is verified

languagestring or null

The person's preferred language

whiteLabelSiteIdinteger or null(int64)

The White Label site Id

countryCodestring or null

The person's country code

divisionCodestring or null

The person's division (usually the state) code

createdstring(date-time)

The UTC date when the person was created

lastLoggedInstring(date-time)

The UTC date when the person last logged in

lastIPstring or null

The person's last known IP

isEmailValidatedboolean

The Person's email validation status

isAliveboolean

The Person's user account status

approvedAccountsArray of objects or null(ApprovedAccount)

The list of approved brokerage accounts for this person

isManagerboolean

True if the the person is a strategy manager

isInvestorboolean

True if the the person is a strategy investor

geoSitestring or null

The GeoSite

isGeoSiteAdminboolean or null

True if the the person is a GeoSite administrator

supportCompanyNamestring or null

The customer support autotrade provider

supportSiteURLstring or null

The customer support website address

supportEmailstring or null

The customer support email

{ "id": 0, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "isPhoneVerified": true, "language": "string", "whiteLabelSiteId": 0, "countryCode": "string", "divisionCode": "string", "created": "2019-08-24T14:15:22Z", "lastLoggedIn": "2019-08-24T14:15:22Z", "lastIP": "string", "isEmailValidated": true, "isAlive": true, "approvedAccounts": [ { "personId": 0, "addedDate": "2019-08-24T14:15:22Z", "account": "string", "brokerId": 0, "connectionType": 0, "addedByPersonId": 0 } ], "isManager": true, "isInvestor": true, "geoSite": "string", "isGeoSiteAdmin": true, "supportCompanyName": "string", "supportSiteURL": "string", "supportEmail": "string" }

PositionBase

strategyIdinteger or null(int64)

The C2 StrategyId

quantitynumber or null(double)

The net signed position quantity. Short positions will be negative.

avgPxnumber or null(double)

The position average price

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
{ "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 } }

PositionDTO

strategyIdinteger or null(int64)

The C2 StrategyId

quantitynumber or null(double)

The net signed position quantity. Short positions will be negative.

avgPxnumber or null(double)

The position average price

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
strategyNamestring or null

The C2 Strategy name

currencystring or null

The 3-character ISO instrument currency. E.g. 'USD'

openedDatestring or null(date-time)

UTC DateTime when the position was opened

{ "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "strategyName": "string", "currency": "string", "openedDate": "2019-08-24T14:15:22Z" }

ProfileResponse

resultsArray of objects or null(PersonDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "isPhoneVerified": true, "language": "string", "whiteLabelSiteId": 0, "countryCode": "string", "divisionCode": "string", "created": "2019-08-24T14:15:22Z", "lastLoggedIn": "2019-08-24T14:15:22Z", "lastIP": "string", "isEmailValidated": true, "isAlive": true, "approvedAccounts": [], "isManager": true, "isInvestor": true, "geoSite": "string", "isGeoSiteAdmin": true, "supportCompanyName": "string", "supportSiteURL": "string", "supportEmail": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceAutotradeOrder

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

orderIdstring or null

The OrderID to be replaced

pricenumber or null(double)

The new Order price

{ "account": "string", "personId": 0, "orderId": "string", "price": 0.1 }

ReplaceAutotradeOrderResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceSignalResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceStrategyOrder

orderobject(OrderDTO)
{ "order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string" } }

ResetPaperTrade

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

{ "account": "string", "personId": 0 }

ResponseError

Error information pertaining to a particular named field. Used for returning multiple field validation errors.

errorCodestring or null

The C2 error code. Please see https://api-docs.collective2.com/guides/error-codes#c2-errors.

fieldNamestring or null

The affected parameter.

messagestring or null

More details about the ErrorCode.

{ "errorCode": "string", "fieldName": "string", "message": "string" }

ResponseStatus

errorCodestring or null

The HTTP error code. Please see https://api-docs.collective2.com/guides/error-codes#http-errors.

messagestring or null

The human-readable meaning of the ErrorCode.

errorsArray of objects or null(ResponseError)
{ "errorCode": "string", "message": "string", "errors": [ { "errorCode": "string", "fieldName": "string", "message": "string" } ] }

SearchStrategiesResponse

resultsArray of objects or null(StrategyBasicDetailsDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "strategyId": 0, "isAlive": true, "isPrivate": true, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "whiteLabelSiteId": 0 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SetAutotradeSettings

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The C2 PersonID

isAutotradeEnabledboolean or null

Set to TRUE if you want to enable the account for Autotrade. The StartAutotrade endpoint will automatically enable this setting. It may be disabled if your account is delinked by the broker, or if we detect rare unexpected activity in your account such as a margin call, pattern day trader, account becomes restricted by the broker, etc.

isAutoSyncEnabledboolean or null

Set to TRUE if you want to enable or disable AutoSync for the account. AutoSync automatically gets disabled whenever an external (i.e. non-C2) order is executed in the account.

{ "account": "string", "personId": 0, "brokerId": 0, "isAutotradeEnabled": true, "isAutoSyncEnabled": true }

SetDesiredPositions

strategyIdinteger or null(int64)

The C2 StrategyId

positionsArray of objects or null(PositionBase)

The list of positions that must exist in the strategy. Quantity must be non-zero. To close a position, simply omit it from the Positions array. Sending an empty Positions array will close all positions.

{ "strategyId": 0, "positions": [ { "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": {}, "exchangeSymbol": {} } ] }

SetDesiredPositionsResponse

resultsArray of objects or null(DesiredPositionResponseDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "newSignals": [], "canceledSignals": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SetDesiredPositionsV2

strategyIdinteger or null(int64)

The C2 StrategyId

positionsArray of objects or null(PositionBase)

The list of positions that must exist in the strategy. Quantity must be non-zero. To close a position, simply omit it from the Positions array. Sending an empty Positions array will close all positions.

{ "strategyId": 0, "positions": [ { "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": {}, "exchangeSymbol": {} } ] }

SetDesiredPositionsV2Response

resultsArray of objects or null(DesiredPositionResponseDTOV2)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "newSignals": [], "canceledSignals": [], "rejectedSignals": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SignalIdDTO

signalIdinteger(int64)

The parent C2 SignalId

profitTargetSignalIdinteger or null(int64)

The C2 ProfitTarget SignalId

stopLossSignalIdinteger or null(int64)

The C2 StopLoss SignalId

exitSignalsOCAGroupIdinteger or null(int64)

The StopLossSignalId and ProfitTargetSignalId OCA (One-Cancels-All) group

parkedUntilDatestring or null(date-time)

The New-York date/time when the signal should be released

{ "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" }

SignalResponse

signalIdinteger or null(int64)

The unique SignalId

orderStatusstring or null

'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace

orderTypestring or null

'1' = Market, '2' = Limit, '3' = Stop

Enum ValueDescription
1

Market

2

Limit

3

Stop

Example: "1"
sidestring or null

'1' = Buy, '2' = Sell

Enum ValueDescription
1

Buy

2

Sell

Example: "1"
openClosestring or null

'O' = Open, 'C' = Close

Enum ValueDescription
O

Open

C

Close

Example: "O"
orderQuantitynumber or null(double)

The unsigned (absolute value) order quantity

limitnumber or null(double)

The C2-formatted Limit Price

stopnumber or null(double)

The C2-formatted Stop Price

tifstring or null

The time in force. 0 = Day, 1 = Good Till Cancel (GTC)

Enum ValueDescription
0

Day

1

GTC

Example: "0"
filledQuantitynumber or null(double)

The unsigned (absolute value) quantity filled

avgFillPricenumber or null(double)

The average fill price, if FilledQuantity > 0

postedDatestring or null(date-time)

UTC DateTime when the order was posted

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
rejectMessagestring or null

The signal rejection message. Only available in response when OrderStatus = '8' (Rejected)

{ "signalId": 0, "orderStatus": "string", "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "rejectMessage": "string" }

SimResultDTO

personIdinteger(int64)

The C2 PersonId

firstNamestring or null

The person's first name

lastNamestring or null

The person's last name

emailstring or null

The person's email

accountstring or null

The SIM Account

strategyIdinteger(int64)

StrategyId

strategyNamestring or null

The Strategy Name

startDatestring(date-time)

UTC Date when the person started SIM for the Strategy

endDatestring or null(date-time)

UTC Date when the person stopped SIM for the Strategy

startEquityinteger(int64)

Dollar amount to start calculation

endEquityinteger or null(int64)

Dollar amount to end calculation

totalReturnnumber(double)

Last 90 day's performance percent

totalDeltanumber(double)

Last 90 day's performance in dollars

scalingFactorinteger(int64)

The % scaling factor. e.g. 2 means 2x the strategy quantities

{ "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "startEquity": 0, "endEquity": 0, "totalReturn": 0.1, "totalDelta": 0.1, "scalingFactor": 0 }

StartAutotrade

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The BrokerId

strategyIdinteger or null(int64)

The StrategyId

scalingPercentageinteger(int64)

The Autotrade Scaling factor. e.g. Enter 105 for 105%

futuresEnabledboolean

(optional) TRUE to enable the Futures asset class when autotrading this strategy. Default is FALSE

Default false
maxFuturesinteger or null(int32)

(optional) Set a maximum number of contracts to hold in a position for this strategy

forexEnabledboolean

(optional) TRUE to enable autotrading Forex for this strategy. Default is FALSE

Default false
maxForexinteger or null(int32)

(optional) Set a maximum number of units (each unit on C2 is 1000 currency units) to hold in a position for this strategy

stocksEnabledboolean

(optional) TRUE to enable autotrading Stocks for this strategy. Default is FALSE

Default false
maxStocksDollarsinteger or null(int32)

(optional) Set a maximum number of dollars to hold in a position for this strategy (no decimals)

optionsEnabledboolean

(optional) TRUE to enable autotrading Options for this strategy. Default is FALSE

Default false
shortOptionsEnabledboolean

(optional) TRUE to enable the shorting of Options when autotrading this strategy. Default is FALSE

Default false
maxOptionsinteger or null(int32)

(optional) Set a maximum number of contracts to hold in a position for this strategy

doNotJoinCurrentSystemPositionsboolean or null

(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.

Default null
autoStopLossinteger or null(int64)

(optional) Dollar value of the automated stop loss which will rest in addition to the strategy stop loss orders

accountUserNamestring or null

(optional) The Brokerage account username. Only needed for specific Brokers, please enquire with support at help@collective2.com

accountPasswordstring or null

(optional) The Brokerage account password. Only needed for specific Brokers, please enquire with support at help@collective2.com

{ "account": "string", "personId": 0, "brokerId": 0, "strategyId": 0, "scalingPercentage": 0, "futuresEnabled": false, "maxFutures": 0, "forexEnabled": false, "maxForex": 0, "stocksEnabled": false, "maxStocksDollars": 0, "optionsEnabled": false, "shortOptionsEnabled": false, "maxOptions": 0, "doNotJoinCurrentSystemPositions": null, "autoStopLoss": 0, "accountUserName": "string", "accountPassword": "string" }

StrategyBasicDetailsDTO

idinteger(int64)

Same value as StrategyId

strategyIdinteger(int64)

The C2 SystemID

isAliveboolean

TRUE if the Strategy is alive

isPrivateboolean or null

TRUE if the Strategy is a test or private strategy

strategyNamestring or null

The Strategy Name

startDatestring or null(date-time)

UTC Date of when the Strategy was created

securityTypesEnabledobject or null

List of all SecurityTypes enabled for trading in the strategy

monthlyCostnumber or null(double)

Cost of Strategy lease per month

strategyOwnerIdinteger or null(int64)

The Strategy Owner's PersonId

whiteLabelSiteIdinteger or null(int64)

The Strategy Owner's White Label Site Id

{ "id": 0, "strategyId": 0, "isAlive": true, "isPrivate": true, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": { "property1": true, "property2": true }, "monthlyCost": 0.1, "strategyOwnerId": 0, "whiteLabelSiteId": 0 }

StrategyDetailsDTO

strategyIdinteger(int64)

The C2 strategyID

strategyNamestring or null

The Strategy Name

isAliveboolean

TRUE if the Strategy is alive

startDatestring or null(date-time)

UTC Date of when the Strategy was created

primarySecurityTypesstring or null

Primary asset class traded e.g. Stocks, Options, Forex, Futures

securityTypesEnabledobject or null

List of all SecurityTypes enabled for trading in the strategy

monthlyCostnumber or null(double)

Cost of Strategy lease per month

strategyOwnerIdinteger or null(int64)

The Strategy Owner's PersonId

strategyOwnerNamestring or null

The Strategy Owner's name

suggestedCapitalinteger or null(int32)

The suggested capital to invest in the Strategy

lastModifiedstring or null(date-time)

UTC Date of when the Strategy was last modified

scoreinteger or null(int32)

The C2 score

isTradeOwnSystemboolean or null

TRUE if Strategy owner Trades his Own Strategy

whiteLabelSiteIdinteger or null(int64)

The WhiteLabel SiteId, if any

isPrivateboolean or null

TRUE if Strategy is private

auminteger or null(int32)

The total USD assets under management

auM_NumberOfAccountsinteger or null(int32)

The number of accounts used in the AUM calculation

returnnumber or null(double)

The total Strategy return

returnLabelstring or null

The total Strategy return label which explains the Return calculation

equitynumber or null(double)

The current open profits (or open losses) in the positions the strategy is currently holding

cashnumber or null(double)

The current strategy cash

startingCashnumber or null(double)

The starting strategy cash

profitFactornumber or null(double)

The win/loss ratio

cashDividendsnumber or null(double)

The strategy's total cash dividends

buyingPowernumber or null(double)

The strategy's remaining Buying Power

marginUsednumber or null(double)

The amount of collateral the strategy needs to put up to hold the positions it holds. For futures, this is specified per contract by the exchange; for stocks it's the standard margin formula

ageInDaysinteger or null(int32)

Number of days the Strategy traded

modelAccountValuenumber or null(double)

The current strategy account value

numTradesinteger or null(int32)

The number of executed signals

numWinnersinteger or null(int32)

The number of winning signals

numLosersinteger or null(int32)

The number of losing signals

percentWinTradesnumber or null(double)

% of winning trades

sumDollarWinnersnumber or null(double)

Total USD of winning trades

sumDollarLosersnumber or null(double)

Total USD of losing trades

numMonthsinteger or null(int32)

The total number of months for the strategy

winMonthsInUIinteger or null(int32)

The number of profitable months as shown on the C2 UI

winMonthsnumber or null(double)

The number of profitable months

winMonthsRationumber or null(double)

The ratio of winning months

maxDrawdownnumber or null(double)

The % of maximum peak-to-valley historical drawdown

maxDrawdownDaysnumber or null(double)

The number of days of the maximum peak-to-valley historical drawdown

maxDrawdownStartDatestring or null

The maximum drawdown start date YYYYMMDD

maxDrawdownEndDatestring or null

The maximum drawdown end date YYYYMMDD

avgWinDollarsnumber or null(double)

The average Strategy winning trade in dollars

avgLossDollarsnumber or null(double)

The average Strategy losing trade in dollars

avgTradeDurationnumber or null(double)

The average number of trading days that a position is held

correlationSP500number or null(double)

The Correlation to the S&P 500 during strategy life

sP500Returnnumber or null(double)

The cumulative % return of the SP500 during strategy life

returnVsSP500number or null(double)

The % return of the strategy - Return of SP500 % (cumulative)

avgLeveragenumber or null(double)

The average leverage used by the Strategy

maxLeveragenumber or null(double)

The max leverage used by the Strategy

correlationToSP500number or null(double)

The strategy correlation to the SP500

alphanumber or null(double)

The Alpha ratio

betanumber or null(double)

The Beta ratio

treynornumber or null(double)

The Treynor ratio

sortinonumber or null(double)

The Sortino ratio

sharpenumber or null(double)

The Sharpe ratio tells us whether a portfolio's returns are due to smart investment decisions or a result of excess risk

calmarnumber or null(double)

The Calmar ratio

{ "strategyId": 0, "strategyName": "string", "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "primarySecurityTypes": "string", "securityTypesEnabled": { "property1": true, "property2": true }, "monthlyCost": 0.1, "strategyOwnerId": 0, "strategyOwnerName": "string", "suggestedCapital": 0, "lastModified": "2019-08-24T14:15:22Z", "score": 0, "isTradeOwnSystem": true, "whiteLabelSiteId": 0, "isPrivate": true, "aum": 0, "auM_NumberOfAccounts": 0, "return": 0.1, "returnLabel": "string", "equity": 0.1, "cash": 0.1, "startingCash": 0.1, "profitFactor": 0.1, "cashDividends": 0.1, "buyingPower": 0.1, "marginUsed": 0.1, "ageInDays": 0, "modelAccountValue": 0.1, "numTrades": 0, "numWinners": 0, "numLosers": 0, "percentWinTrades": 0.1, "sumDollarWinners": 0.1, "sumDollarLosers": 0.1, "numMonths": 0, "winMonthsInUI": 0, "winMonths": 0.1, "winMonthsRatio": 0.1, "maxDrawdown": 0.1, "maxDrawdownDays": 0.1, "maxDrawdownStartDate": "string", "maxDrawdownEndDate": "string", "avgWinDollars": 0.1, "avgLossDollars": 0.1, "avgTradeDuration": 0.1, "correlationSP500": 0.1, "sP500Return": 0.1, "returnVsSP500": 0.1, "avgLeverage": 0.1, "maxLeverage": 0.1, "correlationToSP500": 0.1, "alpha": 0.1, "beta": 0.1, "treynor": 0.1, "sortino": 0.1, "sharpe": 0.1, "calmar": 0.1 }

StrategyHistoricalEquityDTO

strategyIdinteger(int64)

The C2 strategyID

strategyNamestring or null

The Strategy Name

startDatestring or null(date-time)

UTC Date of when the Strategy was created

securityTypesEnabledobject or null

List of all SecurityTypes enabled for trading in the strategy

monthlyCostnumber or null(double)

Cost of Strategy lease per month

strategyOwnerIdinteger or null(int64)

The Strategy Owner's PersonId

monthlyResultsArray of objects or null(StrategyMonthlyResultsDTO)

Monthly and Yearly stats for the strategy

{ "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": { "property1": true, "property2": true }, "monthlyCost": 0.1, "strategyOwnerId": 0, "monthlyResults": [ { "month": 0, "monthName": "string", "year": 0, "return": 0.1, "isAnnual": true } ] }

StrategyIdDTO

strategyIdinteger(int64)

The C2 StrategyId

{ "strategyId": 0 }

StrategyMonthlyResultsDTO

monthinteger or null(int32)

The month of the year

monthNamestring or null

The English name of the month

yearinteger(int32)

The year

returnnumber(double)

The return % of the month or year (see IsAnnual property)

isAnnualboolean or null

True if the Return is the annual ROI for the Year

{ "month": 0, "monthName": "string", "year": 0, "return": 0.1, "isAnnual": true }

StrategySubscriberDTO

idinteger(int64)

The Row Id

strategyIdinteger(int64)

The StrategyId

strategyNamestring or null

The Strategy name

personIdinteger(int64)

The PersonId

subscriptionIdinteger(int64)

The Subscription Id

subscriberIdinteger(int64)

The Subscriber Id

isStrategyOwnerboolean

The PersonId is also the strategy owner

aliasstring or null

The Subscriber screen name

firstNamestring or null

The Subscriber's first name

lastNamestring or null

The Subscriber's last name

emailstring or null

The Subscriber email

startDatestring(date-time)

The strategy StartDate

endDatestring or null(date-time)

The strategy EndDate, if it was killed

basePricenumber or null(double)

The strategy's base monthly price

markupnumber or null(double)

The price markup

costnumber or null(double)

The strategy cost per period

lastTransactionDatestring or null(date-time)

The Last Transaction Date

lastTransactionAmountnumber or null(double)

The Last Transaction Amount

isResalenumber or null(double)

True if the strategy is bing resold through this White Label Site Id

whiteLabelSiteIdinteger or null(int64)

The White Label Site Id

geoSiteIdstring or null

The GeoSite Id

{ "id": 0, "strategyId": 0, "strategyName": "string", "personId": 0, "subscriptionId": 0, "subscriberId": 0, "isStrategyOwner": true, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "basePrice": 0.1, "markup": 0.1, "cost": 0.1, "lastTransactionDate": "2019-08-24T14:15:22Z", "lastTransactionAmount": 0.1, "isResale": 0.1, "whiteLabelSiteId": 0, "geoSiteId": "string" }

SubcribedStrategyDTO

idinteger(int64)

The Subscription ID

personIdinteger(int64)

The C2 PersonId

strategyIdinteger(int64)

The C2 SystemID

strategyNamestring or null

The Strategy Name

isSimulationboolean

TRUE if the person is Autotrading as a simulation

isPaperTradeboolean

TRUE if the person is Autotrading in a PaperTrade account

isAliveboolean

TRUE if the subscription is active

startDatestring or null(date-time)

UTC Date when the subscription started

endDatestring or null(date-time)

UTC Date when the subscription ended

monthlyCostnumber or null(double)

The subscription monthly cost

{ "id": 0, "personId": 0, "strategyId": 0, "strategyName": "string", "isSimulation": true, "isPaperTrade": true, "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "monthlyCost": 0.1 }

SubscriptionDTO

idinteger(int64)

The PersonId

personIdinteger(int64)

The PersonId subscribed

licenseTypestring or null

The type of license

licenseTypeIdinteger(int64)

The license type id

startDatestring or null(date-time)

The UTC start date of the subscription

endDatestring or null(date-time)

The UTC end date of the subscription

isRecurringboolean

TRUE if the subscription automatically renews

costnumber(double)

The last subscription fee

{ "id": 0, "personId": 0, "licenseType": "string", "licenseTypeId": 0, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "isRecurring": true, "cost": 0.1 }

SupportedSymbolDTO

idinteger(int64)
currencystring or null

The instrument currency

descriptionstring or null

The instrument description

pointValuenumber or null(double)

The value of a point (used with futures)

tickSizenumber or null(double)

The minimum ticksize (used with futures)

decimalPrecisioninteger or null(int64)

The decimal precision of the price (used with futures)

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
marginRequirementsobject(MarginRequirementsDTO)
{ "id": 0, "currency": "string", "description": "string", "pointValue": 0.1, "tickSize": 0.1, "decimalPrecision": 0, "c2Symbol": { "fullSymbol": "string", "symbolType": "string", "underlying": "string", "expiry": "string", "putOrCall": "string", "strikePrice": 0.1, "description": "string" }, "exchangeSymbol": { "symbol": "string", "currency": "string", "securityExchange": "string", "securityType": "string", "maturityMonthYear": "string", "putOrCall": 0, "strikePrice": 0.1, "priceMultiplier": 0.1 }, "marginRequirements": { "initial": 0.1, "maintenance": 0.1 } }

SyncPositionsToOpen

accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The C2 PersonID

strategyIdinteger or null(int64)

The StrategyId

{ "account": "string", "personId": 0, "brokerId": 0, "strategyId": 0 }

SyncPositionsToOpenResponse

resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

UpdateProfile

personIdinteger or null(int64)

The C2 PersonId

{ "personId": 0 }

UpdateStrategy

strategyIdinteger or null(int64)

The C2 StrategyId

{ "strategyId": 0 }

UpdateStrategyResponse

resultsArray of objects or null(StrategyIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "strategyId": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

WatchListDTO

idinteger(int64)

The List Id

personIdinteger(int64)

The PersonId

createdDatestring(date-time)

When the list was created (UTC)

listNamestring or null

The List Name

{ "id": 0, "personId": 0, "createdDate": "2019-08-24T14:15:22Z", "listName": "string" }

WatchListMemberDTO

idinteger(int64)

The Item Id

addedDatestring(date-time)

When the item was added (UTC)

strategyIdinteger(int64)

The StrategyId

personIdinteger(int64)

The PersonId

{ "id": 0, "addedDate": "2019-08-24T14:15:22Z", "strategyId": 0, "personId": 0 }

GetAutotradedStrategies

Request

Request the Autotraded strategies of the person. Paginated endpoint.

Query
PersonIdinteger or null(int64)required

PersonId

Accountstring

The Autotrade account (optional)

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetAutotradedStrategies?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AutotradedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "account": "string", "scalingPercentage": 0.1, "strategyId": 0, "strategyName": "string", "brokerId": 0, "brokerName": "string", "startDate": "2019-08-24T14:15:22Z", "lastModified": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotraders

Request

A list of Autotraders. Paginated endpoint.

Query
StrategyIdinteger or null(int64)

(Optional) StrategyId filter

BrokerIdinteger or null(int32)

(optional) The Autotrade BrokerId

WhiteLabelSiteIdinteger or null(int64)

(optional) The White Label Site Id

curl -i -X GET \
  https://api4-general.collective2.com/Autotrade/GetAutotraders \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AutotradedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "account": "string", "scalingPercentage": 0.1, "strategyId": 0, "strategyName": "string", "brokerId": 0, "brokerName": "string", "startDate": "2019-08-24T14:15:22Z", "lastModified": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradeSettings

Request

The Autotrade Settings. Non-paginated endpoint.

Query
PersonIdinteger or null(int64)required

PersonId

Accountstring

(Optional) Account

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetAutotradeSettings?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AutotradeSettingsDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "country": "string", "state": "string", "language": "string", "siteDomain": "string", "brokerId": 0, "connection": "string", "introducingBrokerId": 0, "introducingBroker": "string", "strategyId": 0, "strategyName": "string", "account": "string", "accountType": 0, "brokerUserID": "string", "currency": "string", "salesRepId": 0, "salesRep": "string", "isTradeLeader": true, "isManualDiscardedPosition": true, "isConfirmationNeeded": true, "isSyncEnabled": true, "willSyncToOpenStocksUSA": true, "willSyncToOpenStocksEurope": true, "willSyncToOpenOptionsUSA": true, "willSyncToOpenOptionsEurope": true, "willSyncToOpenFuturesUSA": true, "willSyncToOpenFuturesEurope": true, "willSyncToOpenFuturesAsia": true, "willSyncToOpenForex": true, "lastSyncStocksUSA": "2019-08-24T14:15:22Z", "lastSyncStocksEurope": "2019-08-24T14:15:22Z", "lastSyncOptionsUSA": "2019-08-24T14:15:22Z", "lastSyncOptionsEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesUSA": "2019-08-24T14:15:22Z", "lastSyncFuturesEurope": "2019-08-24T14:15:22Z", "lastSyncFuturesAsia": "2019-08-24T14:15:22Z", "lastSyncForex": "2019-08-24T14:15:22Z", "isBrokerEnabled": true, "isAutotradeDisabled": true, "isAutotradeDisabledReason": "string", "syncDisabledReason": "string", "firstBrokerActivationDate": "2019-08-24T14:15:22Z", "netLiquidationValue": 0.1, "netLiquidationValueDate": "2019-08-24T14:15:22Z", "virtualLimitOrdersEnabled": true, "scalingPercentage": 0.1, "settingsLastUpdateUTC": "2019-08-24T14:15:22Z", "approved": true, "enabledFutures": true, "futuresLong": true, "futuresShort": true, "minFutures": 0, "maxFutures": 0, "enabledForex": true, "forexEnabledLong": true, "forexEnabledShort": true, "forexLotSize": 0, "minForex": 0, "maxForex": 0, "enabledStocks": true, "stocksLong": true, "stocksShort": true, "maxStocksDollars": 0, "tradeStocksAsCFD": true, "enabledOptions": true, "optionsLong": true, "optionsShort": true, "minOptions": 0, "maxOptions": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SetAutotradeSettings

Request

Enable or disable Autotrade or Autosync in the specified account.

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The C2 PersonID

isAutotradeEnabledboolean or null

Set to TRUE if you want to enable the account for Autotrade. The StartAutotrade endpoint will automatically enable this setting. It may be disabled if your account is delinked by the broker, or if we detect rare unexpected activity in your account such as a margin call, pattern day trader, account becomes restricted by the broker, etc.

isAutoSyncEnabledboolean or null

Set to TRUE if you want to enable or disable AutoSync for the account. AutoSync automatically gets disabled whenever an external (i.e. non-C2) order is executed in the account.

curl -i -X PUT \
  https://api4-general.collective2.com/Autotrade/SetAutotradeSettings \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetDashBoard

Request

Request the Person's Autotraded strategies and a performance summary. Non-paginated endpoint.

Query
PersonIdinteger or null(int64)required

PersonId

Accountstringrequired

The brokerage Account

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetDashBoard?Account=string&PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(DashBoardItemDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "personId": 0, "brokerName": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "todayReturn": 0.1, "totalReturn": 0.1 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SearchAccounts

Request

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

Query
Accountstring

The Autotrade account (optional)

PersonIdinteger or null(int64)

PersonId (optional)

BrokerIdinteger or null(int32)

The Autotrade BrokerId (optional)

FirstNamestring

The FirstName (optional). Not case-sensitive

LastNamestring

The FirstName (optional). Not case-sensitive

Emailstring

The Email (optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label site Id (optional)

CountryCodestring

The person's country code. Not case-sensitive (optional)

IPAddressstring

The person's last known IP address (optional)

Phonestring

The Phone number (optional)

curl -i -X GET \
  https://api4-general.collective2.com/Autotrade/SearchAccounts \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AccountDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "account": "string", "brokerName": "string", "brokerId": 0, "firstName": "string", "lastName": "string", "email": "string", "language": "string", "whiteLabelSiteId": 0, "geoSite": "string", "countryCode": "string", "divisionCode": "string", "authenticatedDate": "2019-08-24T14:15:22Z" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradeActiveOrders

Request

Request the Working orders of the Account. Non-paginated endpoint.

Query
Accountstringrequired

The Brokerage Account

PersonIdinteger or null(int64)required

The PersonId owning the account

StrategyIdinteger or null(int64)

(Optional) StrategyId filter

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetAutotradeActiveOrders?Account=string&PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(OrderStatusDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutotradeHistoricalOrders

Request

Request the historical orders of the Account. Paginated endpoint.

Query
Accountstringrequired

Brokerage Account filter

PersonIdinteger or null(int64)required

The PersonId owning the account

BrokerIdinteger or null(int32)

BrokerId (Optional)

StrategyIdinteger or null(int64)

StrategyId (Optional)

OrderStatusstring

'A' = PendingNew, '0' = Working, '1' = Partially filled, '2' = Filled, '4' = Canceled, '5' = Replaced, '6' = Pending Cancel, '8' = Rejected, 'C' = Expired, 'E' = Pending Replace (Optional)

StartDatestring or null(date-time)

StartDate (Optional)

EndDatestring or null(date-time)

EndDate (Optional)

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetAutotradeHistoricalOrders?Account=string&PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(OrderStatusDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAutoTradeOpenPositions

Request

Request the open positions of the Account. Non-paginated endpoint.

Query
Accountstringrequired

Brokerage Account filter

StrategyIdinteger or null(int64)

(Optional) StrategyId filter

curl -i -X GET \
  'https://api4-general.collective2.com/Autotrade/GetAutoTradeOpenPositions?Account=string' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(PositionDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": {}, "exchangeSymbol": {}, "strategyName": "string", "currency": "string", "openedDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

NewAutotradeOrder

Request

Send a new closing order to the specified account. Only Stop and Limit OrderTypes are supported. Non-paginated endpoint.

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

orderobject(OrderDTO)
curl -i -X POST \
  https://api4-general.collective2.com/Autotrade/NewAutotradeOrder \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

CancelAutotradeOrder

Request

Cancel an order in the specified account. Auto Stop-Loss orders are not currently supported. Non-paginated endpoint.

Query
Accountstringrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

OrderIdstringrequired

The OrderID to be cancelled

curl -i -X DELETE \
  'https://api4-general.collective2.com/Autotrade/CancelAutotradeOrder?Account=string&OrderId=string&PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceAutotradeOrder

Request

Cancel/Replace an open closing order in the specified account. Only strategy and manual exit orders are currently supported.

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

orderIdstring or null

The OrderID to be replaced

pricenumber or null(double)

The new Order price

curl -i -X PUT \
  https://api4-general.collective2.com/Autotrade/ReplaceAutotradeOrder \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetBrokers

Request

Get a list of Autotrade brokers. Non-Paginated endpoint.

Query
IncludeDisabledboolean or null

Include the disabled brokers. Default is FALSE. (optional)

curl -i -X GET \
  https://api4-general.collective2.com/Autotrade/GetBrokers \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(BrokerDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "name": "string", "isEnabled": true, "connectionName": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

StartAutotrade

Request

Start or modify an Autotrade setup. Non-paginated endpoint.

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The BrokerId

strategyIdinteger or null(int64)

The StrategyId

scalingPercentageinteger(int64)

The Autotrade Scaling factor. e.g. Enter 105 for 105%

futuresEnabledboolean

(optional) TRUE to enable the Futures asset class when autotrading this strategy. Default is FALSE

Default false
maxFuturesinteger or null(int32)

(optional) Set a maximum number of contracts to hold in a position for this strategy

forexEnabledboolean

(optional) TRUE to enable autotrading Forex for this strategy. Default is FALSE

Default false
maxForexinteger or null(int32)

(optional) Set a maximum number of units (each unit on C2 is 1000 currency units) to hold in a position for this strategy

stocksEnabledboolean

(optional) TRUE to enable autotrading Stocks for this strategy. Default is FALSE

Default false
maxStocksDollarsinteger or null(int32)

(optional) Set a maximum number of dollars to hold in a position for this strategy (no decimals)

optionsEnabledboolean

(optional) TRUE to enable autotrading Options for this strategy. Default is FALSE

Default false
shortOptionsEnabledboolean

(optional) TRUE to enable the shorting of Options when autotrading this strategy. Default is FALSE

Default false
maxOptionsinteger or null(int32)

(optional) Set a maximum number of contracts to hold in a position for this strategy

doNotJoinCurrentSystemPositionsboolean or null

(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.

Default null
autoStopLossinteger or null(int64)

(optional) Dollar value of the automated stop loss which will rest in addition to the strategy stop loss orders

accountUserNamestring or null

(optional) The Brokerage account username. Only needed for specific Brokers, please enquire with support at help@collective2.com

accountPasswordstring or null

(optional) The Brokerage account password. Only needed for specific Brokers, please enquire with support at help@collective2.com

curl -i -X POST \
  https://api4-general.collective2.com/Autotrade/StartAutotrade \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
boolean
Response
application/json
true

StopAutotrade

Request

Stop a autotrade setup. Non-paginated endpoint.

Query
Accountstringrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

StrategyIdinteger or null(int64)required

The StrategyId

BrokerIdinteger or null(int32)

The BrokerId

LeavePositionsOpenboolean

TRUE to leave positions open in the autotraded account. Default is FALSE

TerminateStrategySubscriptionboolean

TRUE to stop the Strategy subscription. Default is FALSE

curl -i -X DELETE \
  'https://api4-general.collective2.com/Autotrade/StopAutotrade?Account=string&PersonId=0&StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
boolean
Response
application/json
true

GetSimResults

Request

Return SIM trading results for all subscribers who are using “free sims.”. Non-Paginated endpoint.

Query
PersonIdinteger or null(int64)

PersonId (optional)

WhiteLabelSiteIdinteger or null(int64)

The WhiteLabel SiteId (optional)

ActiveOnlyboolean

Set to FALSE to get the full history of all Simulation results (optional). Default is TRUE

MaxAccountDaysinteger or null(int32)

The maximum account number of days to include (optional). Maximum default value is 365 days

MinLoginDaysinteger or null(int32)

The minimum number of days since the user logged in (optional)

curl -i -X GET \
  https://api4-general.collective2.com/Autotrade/GetSimResults \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SimResultDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "account": "string", "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "startEquity": 0, "endEquity": 0, "totalReturn": 0.1, "totalDelta": 0.1, "scalingFactor": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ResetPaperTrade

Request

Reset the specified PaperTrade account.

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

curl -i -X PUT \
  https://api4-general.collective2.com/Autotrade/ResetPaperTrade \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SyncPositionsToOpen

Request

Reset the Autosync PositionsToOpen flags for all enabled asset classes in the specified account/strategy. Account will sync-to-open positions once for the strategy, then resume normal operation (i.e. sync open orders and the closing of positions).

Bodyapplication/jsonrequired
accountstring or null

The Autotrade account

personIdinteger or null(int64)

The C2 PersonID

brokerIdinteger or null(int32)

The C2 PersonID

strategyIdinteger or null(int64)

The StrategyId

curl -i -X POST \
  https://api4-general.collective2.com/Autotrade/SyncPositionsToOpen \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

Hello

Request

Test endpoint that can be used to test your API Key, RateLimits, Headers, etc

Bodyapplication/jsonrequired
namestring or null

Your name (or any string)

curl -i -X POST \
  https://api4-general.collective2.com/General/Hello \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of strings or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ "string" ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetProfile

Request

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.

Query
PersonIdinteger or null(int64)

The C2 PersonId. If omitted, the requester's information will be returned.

curl -i -X GET \
  https://api4-general.collective2.com/General/GetProfile \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(PersonDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "isPhoneVerified": true, "language": "string", "whiteLabelSiteId": 0, "countryCode": "string", "divisionCode": "string", "created": "2019-08-24T14:15:22Z", "lastLoggedIn": "2019-08-24T14:15:22Z", "lastIP": "string", "isEmailValidated": true, "isAlive": true, "approvedAccounts": [], "isManager": true, "isInvestor": true, "geoSite": "string", "isGeoSiteAdmin": true, "supportCompanyName": "string", "supportSiteURL": "string", "supportEmail": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SearchProfiles

Request

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.

Query
PersonIdinteger or null(int64)

The C2 PersonId (optional)

FirstNamestring

The FirstName. Not case-sensitive (optional)

LastNamestring

The FirstName. Not case-sensitive (optional)

Emailstring

The Email. Not case-sensitive (optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label site Id (optional)

CountryCodestring

The person's country code. Not case-sensitive. (optional) See https://en.wikipedia.org/wiki/ISO_3166-2

DivisionCodestring

The person's subdivision (e.g. provinces or states). Not case-sensitive. (optional) See https://en.wikipedia.org/wiki/ISO_3166-2

IPAddressstring

The person's last known IP address (optional)

Phonestring

The verified Phone number (optional)

IsAliveboolean or null

The Person's Status (optional)

IsEmailValidatedboolean or null

The Person's email validation status (optional)

curl -i -X GET \
  https://api4-general.collective2.com/General/SearchProfiles \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(PersonDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "phone": "string", "isPhoneVerified": true, "language": "string", "whiteLabelSiteId": 0, "countryCode": "string", "divisionCode": "string", "created": "2019-08-24T14:15:22Z", "lastLoggedIn": "2019-08-24T14:15:22Z", "lastIP": "string", "isEmailValidated": true, "isAlive": true, "approvedAccounts": [], "isManager": true, "isInvestor": true, "geoSite": "string", "isGeoSiteAdmin": true, "supportCompanyName": "string", "supportSiteURL": "string", "supportEmail": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

UpdateProfile

Request

Update an existing C2 profile. Not available. Please contact us if you need this endpoint.

Bodyapplication/jsonrequired
personIdinteger or null(int64)

The C2 PersonId

curl -i -X PUT \
  https://api4-general.collective2.com/General/UpdateProfile \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AddPersonResponseDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "personId": 0, "csrf": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetInvestorPlanSubscriptions

Request

Request details of a Person's strategy subscriptions. Paginated endpoint

Query
PersonIdinteger or null(int64)required

The C2 PersonId

ActiveOnlyboolean

Set to FALSE to get all transactions (optional). Default is TRUE

curl -i -X GET \
  'https://api4-general.collective2.com/General/GetInvestorPlanSubscriptions?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SubscriptionDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "licenseType": "string", "licenseTypeId": 0, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "isRecurring": true, "cost": 0.1 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetManagerPlanSubscriptions

Request

Request details of a Person's strategy manager subscriptions. Paginated endpoint

Query
PersonIdinteger or null(int64)required

The C2 PersonId

ActiveOnlyboolean

Set to FALSE to get all transactions (optional). Default is TRUE

curl -i -X GET \
  'https://api4-general.collective2.com/General/GetManagerPlanSubscriptions?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SubscriptionDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "licenseType": "string", "licenseTypeId": 0, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "isRecurring": true, "cost": 0.1 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscribedStrategies

Request

Request the subscribed strategies of the person. Paginated endpoint.

Query
PersonIdinteger or null(int64)required

PersonId

ActiveOnlyboolean

Set to FALSE to get all transactions (optional). Default is TRUE

curl -i -X GET \
  'https://api4-general.collective2.com/General/GetSubscribedStrategies?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SubcribedStrategyDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "strategyId": 0, "strategyName": "string", "isSimulation": true, "isPaperTrade": true, "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "monthlyCost": 0.1 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetAccessKey

Request

Get the requester's APIKey Role and expiration

curl -i -X GET \
  https://api4-general.collective2.com/General/GetAccessKey \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(AccessKeyDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "accessKey": "string", "personId": 0, "firstName": "string", "lastName": "string", "email": "string", "whiteLabelSiteId": 0, "role": "string", "message": "string", "createDate": "2019-08-24T14:15:22Z", "deleteDate": "2019-08-24T14:15:22Z", "comment": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyDetails

Request

Request the strategy statistics. Non-paginated endpoint.

Query
StrategyIdinteger or null(int64)required

The Strategy ID

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyDetails?StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyDetailsDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0, "strategyName": "string", "isAlive": true, "startDate": "2019-08-24T14:15:22Z", "primarySecurityTypes": "string", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "strategyOwnerName": "string", "suggestedCapital": 0, "lastModified": "2019-08-24T14:15:22Z", "score": 0, "isTradeOwnSystem": true, "whiteLabelSiteId": 0, "isPrivate": true, "aum": 0, "auM_NumberOfAccounts": 0, "return": 0.1, "returnLabel": "string", "equity": 0.1, "cash": 0.1, "startingCash": 0.1, "profitFactor": 0.1, "cashDividends": 0.1, "buyingPower": 0.1, "marginUsed": 0.1, "ageInDays": 0, "modelAccountValue": 0.1, "numTrades": 0, "numWinners": 0, "numLosers": 0, "percentWinTrades": 0.1, "sumDollarWinners": 0.1, "sumDollarLosers": 0.1, "numMonths": 0, "winMonthsInUI": 0, "winMonths": 0.1, "winMonthsRatio": 0.1, "maxDrawdown": 0.1, "maxDrawdownDays": 0.1, "maxDrawdownStartDate": "string", "maxDrawdownEndDate": "string", "avgWinDollars": 0.1, "avgLossDollars": 0.1, "avgTradeDuration": 0.1, "correlationSP500": 0.1, "sP500Return": 0.1, "returnVsSP500": 0.1, "avgLeverage": 0.1, "maxLeverage": 0.1, "correlationToSP500": 0.1, "alpha": 0.1, "beta": 0.1, "treynor": 0.1, "sortino": 0.1, "sharpe": 0.1, "calmar": 0.1 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SearchStrategies

Request

Request a list of strategies available to the user. Paginated endpoint.

Query
SecurityTypestring

(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'

CreatedBeforeDatestring

(optional) Filter used to search old stategies. The date must be in ISO 8601 Date Format.

StrategyNamestring

Search strategies on name (optional). Partial matches will be returned. Wildcards % and _ are supported

StrategyOwnerPersonIdinteger or null(int64)

The C2 PersonId (optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label site Id (optional)

curl -i -X GET \
  https://api4-general.collective2.com/Strategies/SearchStrategies \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyBasicDetailsDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "strategyId": 0, "isAlive": true, "isPrivate": true, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "whiteLabelSiteId": 0 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetLeaderBoard

Request

Request the curated public leaderboard of strategies. Non-Paginated endpoint.

Query
SecurityTypestring

(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'

curl -i -X GET \
  https://api4-general.collective2.com/Strategies/GetLeaderBoard \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyBasicDetailsDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "strategyId": 0, "isAlive": true, "isPrivate": true, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "whiteLabelSiteId": 0 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscribers

Request

Request the list of subscribers of a strategy and their subscrition history. Paginated endpoint.

Query
StrategyIdinteger or null(int64)required

The C2 StrategyId

ActiveOnlyboolean or null

Set to True to include only currently active subscribers. Default is False

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetSubscribers?StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategySubscriberDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "strategyId": 0, "strategyName": "string", "personId": 0, "subscriptionId": 0, "subscriberId": 0, "isStrategyOwner": true, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "basePrice": 0.1, "markup": 0.1, "cost": 0.1, "lastTransactionDate": "2019-08-24T14:15:22Z", "lastTransactionAmount": 0.1, "isResale": 0.1, "whiteLabelSiteId": 0, "geoSiteId": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscriptionRevenue

Request

Request the subscriber revenue of a strategy. Paginated endpoint. You must provide at least one parameter other than Start/End date.

Query
StrategyIdinteger or null(int64)

The C2 StrategyId (Optional)

StartDatestring

StartDate (Optional)

EndDatestring

EndDate (Optional)

StrategyOwnerPersonIdinteger or null(int64)

The Strategy Owner's PersonId (Optional)

SubscriberPersonIdinteger or null(int64)

The Subscriber's PersonId (Optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label Site Id (Optional)

curl -i -X GET \
  https://api4-general.collective2.com/Strategies/GetSubscriptionRevenue \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategySubscriberDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "strategyId": 0, "strategyName": "string", "personId": 0, "subscriptionId": 0, "subscriberId": 0, "isStrategyOwner": true, "alias": "string", "firstName": "string", "lastName": "string", "email": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "basePrice": 0.1, "markup": 0.1, "cost": 0.1, "lastTransactionDate": "2019-08-24T14:15:22Z", "lastTransactionAmount": 0.1, "isResale": 0.1, "whiteLabelSiteId": 0, "geoSiteId": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

NewStrategyOrder

Request

Send a new order for the strategy. Non-paginated endpoint.

Bodyapplication/jsonrequired
orderobject(OrderDTO)
curl -i -X POST \
  https://api4-general.collective2.com/Strategies/NewStrategyOrder \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

CancelStrategyOrder

Request

Cancel a order. Non-paginated endpoint.

Query
StrategyIdinteger or null(int64)required

The Strategy ID

SignalIdinteger or null(int64)required

The Signal ID to be cancelled

curl -i -X DELETE \
  'https://api4-general.collective2.com/Strategies/CancelStrategyOrder?SignalId=0&StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceStrategyOrder

Request

Send a cancel/replace a order for the strategy. Non-paginated endpoint.

Bodyapplication/jsonrequired
orderobject(OrderDTO)
curl -i -X PUT \
  https://api4-general.collective2.com/Strategies/ReplaceStrategyOrder \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0, "parkedUntilDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyActiveOrders

Request

Request the open orders for the strategies. Non-paginated endpoint.

Query
StrategyIdsArray of integers(int64)required

A list of Strategy IDs

SecurityTypestring

(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'

OrderTypestring

(optional) OrderType filter. e.g. '1' = Market, '2' = Limit, '3' = Stop

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyActiveOrders?StrategyIds=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(OrderStatusDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyOpenPositions

Request

Request the open positions for the strategy. Non-paginated endpoint.

Query
StrategyIdsArray of integers(int64)required

A list of Strategy IDs

SecurityTypestring

(optional) SecurityType filter. e.g. Stocks = 'CS', Futures = 'FUT', Options = 'OPT', Forex = 'FOR'

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyOpenPositions?StrategyIds=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(PositionDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0, "quantity": 0.1, "avgPx": 0.1, "c2Symbol": {}, "exchangeSymbol": {}, "strategyName": "string", "currency": "string", "openedDate": "2019-08-24T14:15:22Z" } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalOrders

Request

Returns the historical orders of the strategy. Paginated endpoint.

Query
StrategyIdinteger or null(int64)

StrategyId (optional: StrategyId or SignalId must be present)

SignalIdinteger or null(int64)

SignalId (optional: StrategyId or SignalId must be present)

OrderStatusstring

Optional. Available values: '2' = Filled, '4' = Canceled, 'C' = Expired

StartDatestring

UTC StartDate (Optional)

EndDatestring

UTC EndDate (Optional)

curl -i -X GET \
  https://api4-general.collective2.com/Strategies/GetStrategyHistoricalOrders \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(OrderStatusDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "avgPx": 0.1, "orderType": "1", "side": "1", "openClose": "O", "orderQuantity": 0.1, "limit": 0.1, "stop": 0.1, "tif": "0", "profitTarget": 0.1, "stopLoss": 0.1, "doNotCreateOCAGroup": null, "cancelReplaceSignalId": 0, "parentSignalId": 0, "parkedUntilDate": null, "doNotSyncToOpen": null, "c2Symbol": {}, "exchangeSymbol": {}, "rejectMessage": "string", "brokerId": 0, "orderStatus": "string", "filledQuantity": 0.1, "avgFillPrice": 0.1, "postedDate": "2019-08-24T14:15:22Z", "signalType": 0, "info": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

AddStrategy

Request

Create a new, empty, publicly visible strategy. Non-paginated endpoint.

Bodyapplication/jsonrequired
strategyNamestring or null

The desired strategy name

startingCapitalinteger or null(int64)

(Optional) The starting capital. Must be set when Account is not specified, ignored when Account is specified

curl -i -X POST \
  https://api4-general.collective2.com/Strategies/AddStrategy \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

UpdateStrategy

Request

Modify a strategy. Not available yet. Please contact us if you ened this endpoint. Non-paginated endpoint.

Bodyapplication/jsonrequired
strategyIdinteger or null(int64)

The C2 StrategyId

curl -i -X PUT \
  https://api4-general.collective2.com/Strategies/UpdateStrategy \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyIdDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalEquity

Request

Returns monthly returns for the strategy. Non-paginated endpoint.

Query
StrategyIdinteger or null(int64)required

The Strategy ID to get data for

CommissionPlanstringrequired

(Optional) The commission plan to use. The default C2 web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyHistoricalEquity?CommissionPlan=string&StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyHistoricalEquityDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "monthlyResults": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalDailyEquity

Request

Returns daily returns for the strategy. Non-paginated endpoint.

Query
StrategyIdinteger or null(int64)required

The Strategy ID to get data for

CommissionPlanstringrequired

(Optional) The commission plan to use. The default C2 web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyHistoricalDailyEquity?CommissionPlan=string&StrategyId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(StrategyHistoricalEquityDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": {}, "monthlyCost": 0.1, "strategyOwnerId": 0, "monthlyResults": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalClosedTrades

Request

Returns the historical closed trades of the strategy. The difference between an order and a trade is trades group orders on 'tradeid', much like you would see on our web site. Non-paginated endpoint.

Query
CommissionPlanstringrequired

(Optional) The commission plan to use. The default web site CommissionPlan is used if none is specified. Available values: 0 = Default, 1 = C2Europe, 3 = IB, 4 = Tradovate, 5 = StoneX

StrategyIdinteger or null(int64)

The StrategyId

PersonIdinteger or null(int64)

(optional) The PersonId who will view the information. Available to WhiteLabel and GeoSite admins only. Default is the requester's PersonId

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetStrategyHistoricalClosedTrades?CommissionPlan=string' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(HistoricalTradeDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "tradeId": 0, "strategyId": 0, "openDate": "2019-08-24T14:15:22Z", "closeDate": "2019-08-24T14:15:22Z", "avgOpenFillPrice": 0.1, "avgCloseFillPrice": 0.1, "openedQuantity": 0.1, "closedQuantity": 0.1, "openSide": "1", "closeSide": "1", "profitLoss": 0.1, "commission": 0.1, "maxDrawdown": 0.1, "maxDrawdown_DateCalculated": "2019-08-24T14:15:22Z", "maxDrawdown_WorstPrice": 0.1, "maxDrawdown_WorstPriceDate": "2019-08-24T14:15:22Z", "maxDrawdown_StrategyEquity": 0.1, "maxDrawdown_EntryPrice": 0.1, "maxDrawdown_OpenQuantity": 0.1, "c2Symbol": {}, "exchangeSymbol": {} } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SetDesiredPositions

Request

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.

Bodyapplication/jsonrequired
strategyIdinteger or null(int64)

The C2 StrategyId

positionsArray of objects or null(PositionBase)

The list of positions that must exist in the strategy. Quantity must be non-zero. To close a position, simply omit it from the Positions array. Sending an empty Positions array will close all positions.

curl -i -X POST \
  https://api4-general.collective2.com/Strategies/SetDesiredPositions \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(DesiredPositionResponseDTO)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "newSignals": [], "canceledSignals": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SetDesiredPositionsV2

Request

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.

Bodyapplication/jsonrequired
strategyIdinteger or null(int64)

The C2 StrategyId

positionsArray of objects or null(PositionBase)

The list of positions that must exist in the strategy. Quantity must be non-zero. To close a position, simply omit it from the Positions array. Sending an empty Positions array will close all positions.

curl -i -X POST \
  https://api4-general.collective2.com/v2/Strategies/SetDesiredPositions \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(DesiredPositionResponseDTOV2)

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "newSignals": [], "canceledSignals": [], "rejectedSignals": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetWatchLists

Request

Request all watchlists available to the user. Paginated endpoint.

Query
PersonIdinteger or null(int64)required

The C2 PersonId

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetWatchLists?PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(WatchListDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "personId": 0, "createdDate": "2019-08-24T14:15:22Z", "listName": "string" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetWatchListMembers

Request

Request a list of strategies in the watchlist. Paginated endpoint.

Query
PersonIdinteger or null(int64)required

The C2 PersonId

WatchListIdinteger or null(int64)required

The WatchList Id

curl -i -X GET \
  'https://api4-general.collective2.com/Strategies/GetWatchListMembers?PersonId=0&WatchListId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(WatchListMemberDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "addedDate": "2019-08-24T14:15:22Z", "strategyId": 0, "personId": 0 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ManageWatchList

Request

Edit watchlists and their members. Non-paginated endpoint.

Bodyapplication/jsonrequired
personIdinteger or null(int64)

The C2 PersonId

watchListIdinteger or null(int64)

The WatchList Id. Required except when ModificationAction=ADD and ModificationSource=LIST

modificationSourcestring or null

The Type of list to modify. Valid values are 'LIST' (for the whole watchlist), 'MEMBER' (for the list items)

modificationActionstring or null

The change to make. Valid values are: ADD, DELETE

strategyIdinteger or null(int64)

The Strategy Id. Only required when ModificationSource=MEMBER

watchListNamestring or null

The name of the watchlist. Only required when ModificationAction=ADD and ModificationSource=LIST

curl -i -X POST \
  https://api4-general.collective2.com/Strategies/ManageWatchList \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{}'

Responses

OK

Bodyapplication/json
resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ManageWatchList

Request

Edit watchlists and their members. Non-paginated endpoint.

Query
PersonIdinteger or null(int64)required

The C2 PersonId

ModificationSourcestringrequired

The Type of list to modify. Valid values are 'LIST' (for the whole watchlist), 'MEMBER' (for the list items)

ModificationActionstringrequired

The change to make. Valid values are: ADD, DELETE

WatchListIdinteger or null(int64)

The WatchList Id. Required except when ModificationAction=ADD and ModificationSource=LIST

StrategyIdinteger or null(int64)

The Strategy Id. Only required when ModificationSource=MEMBER

WatchListNamestring

The name of the watchlist. Only required when ModificationAction=ADD and ModificationSource=LIST

curl -i -X DELETE \
  'https://api4-general.collective2.com/Strategies/ManageWatchList?ModificationAction=string&ModificationSource=string&PersonId=0' \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of booleans or null

Result array

responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ true ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSupportedSymbols

Request

Request a list of supported Futures and Forex symbols. All US stocks > $5 and all US equity options are supported by default so they will not be sent in the response. We will include a few non-standard stock symbols that require special C2 symbology. Paginated and cached endpoint.

curl -i -X GET \
  https://api4-general.collective2.com/Strategies/GetSupportedSymbols \
  -H 'Authorization: Bearer <YOUR_Bearer myAPIkey_HERE>'

Responses

OK

Bodyapplication/json
resultsArray of objects or null(SupportedSymbolDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
Response
application/json
{ "results": [ { "id": 0, "currency": "string", "description": "string", "pointValue": 0.1, "tickSize": 0.1, "decimalPrecision": 0, "c2Symbol": {}, "exchangeSymbol": {}, "marginRequirements": {} } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }