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(int32)

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" }

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

AddStrategy

StrategyNamestring or nullrequired

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
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)
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, "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", "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" }

CancelAutotradeOrder

PerformanceBase

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

OrderIdstring or nullrequired

The OrderID to be cancelled

{ "Account": "string", "PersonId": 0, "OrderId": "string" }

CancelAutotradeOrderResponse

resultsArray of objects or null(SignalIdDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0 } ], "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 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

CancelStrategyOrder

PerformanceBase

StrategyIdinteger or null(int64)required

The Strategy ID

SignalIdinteger or null(int64)required

The Signal ID to be cancelled

{ "StrategyId": 0, "SignalId": 0 }

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 ] }

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 e.g. DEFAULT (for stocks & options), 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. '202103' (March 2021), or if the contract requires a day: '20210521' (May 21, 2021)

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(double)

The multiplier to apply to the Exchange price to get the C2-formatted price. Default is 1

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

GetAccessKey

PerformanceBase

object(GetAccessKey)

PerformanceBase

{}

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, "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, "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": [ {} ] } }

GetAutoTradeOpenPositions

PerformanceBase

Accountstring or nullrequired

Brokerage Account filter

StrategyIdinteger or null(int64)

(Optional) StrategyId filter

{ "Account": "string", "StrategyId": 0 }

GetAutotradeActiveOrders

PerformanceBase

Accountstring or nullrequired

The Brokerage Account

PersonIdinteger or null(int64)required

The PersonId owning the account

StrategyIdinteger or null(int64)

(Optional) StrategyId filter

{ "Account": "string", "PersonId": 0, "StrategyId": 0 }

GetAutotradeHistoricalOrders

GetAutotradeHistoricalOrders

Accountstring or nullrequired

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 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 (Optional)

Enum"A""0""1""2""4""5""6""8""C""E"
StartDatestring or null(date-time)

StartDate (Optional)

EndDatestring or null(date-time)

EndDate (Optional)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "Account": "string", "PersonId": 0, "BrokerId": 0, "StrategyId": 0, "OrderStatus": "A", "StartDate": "2019-08-24T14:15:22Z", "EndDate": "2019-08-24T14:15:22Z", "Cursor": "string", "Limit": 0, "AscendingOrder": true }

GetAutotradeHistoricalOrdersResponse

resultsArray of objects or null(OrderStatusDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "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, "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": [ {} ] } }

GetAutotradeSettings

PerformanceBase

PersonIdinteger or null(int64)required

PersonId

Accountstring or null

(Optional) Account

{ "PersonId": 0, "Account": "string" }

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, "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", "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": [ {} ] } }

GetAutotradedStrategies

GetAutotradedStrategies

PersonIdinteger or null(int64)required

PersonId

Accountstring or null

The Autotrade account (optional)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "Account": "string", "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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": [ {} ] } }

GetAutotraders

GetAutotraders

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

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "StrategyId": 0, "BrokerId": 0, "WhiteLabelSiteId": 0, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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": [ {} ] } }

GetBrokers

PerformanceBase

IncludeDisabledboolean or null

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

{ "IncludeDisabled": true }

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": [ {} ] } }

GetDashBoard

PerformanceBase

PersonIdinteger or null(int64)required

PersonId

Accountstring or nullrequired

The brokerage Account

{ "PersonId": 0, "Account": "string" }

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, "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, "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": [ {} ] } }

GetHistoricalStrategiesStatsList

PerformanceBase

ReportDateinteger or null(int64)required

The date to look for. The server will automatically adjust the date to the nearest previous available day. Format must be YYYYMMDD.

{ "ReportDate": 0 }

GetHistoricalStrategiesStatsListResponse

resultsArray of strings or null

Result array

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

GetInvestorPlanSubscriptions

GetInvestorPlanSubscriptions

PersonIdinteger or null(int64)required

The C2 PersonId

ActiveOnlyboolean

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

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "ActiveOnly": true, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

GetLeaderBoard

PerformanceBase

SecurityTypestring or null

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

Enum"CS""FUT""OPT""FOR"
{ "SecurityType": "CS" }

GetManagerPlanSubscriptions

GetManagerPlanSubscriptions

PersonIdinteger or null(int64)required

The C2 PersonId

ActiveOnlyboolean

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

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "ActiveOnly": true, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

GetOpenPositionsResponse

resultsArray of objects or null(PositionDTO)

Result array

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

GetProfile

PerformanceBase

PersonIdinteger or null(int64)

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

{ "PersonId": 0 }

GetSimResults

PerformanceBase

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

{ "PersonId": 0, "WhiteLabelSiteId": 0, "ActiveOnly": true }

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": [ {} ] } }

GetStrategyActiveOrders

PerformanceBase

StrategyIdsArray of integers(int64)required

A list of Strategy IDs

SecurityTypestring or null

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

Enum"CS""FUT""OPT""FOR"
{ "StrategyIds": [ 0 ], "SecurityType": "CS" }

GetStrategyDetails

PerformanceBase

StrategyIdinteger or null(int64)required

The Strategy ID

{ "StrategyId": 0 }

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, "isHidden": true, "hiddenReason": "string", "isPrivate": true, "aum": 0, "auM_NumberOfAccounts": 0, "return": 0.1, "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, "winTrades": 0.1, "winMonths": 0.1, "maxDrawdown": 0.1, "avgWinDollars": 0.1, "avgLossDollars": 0.1, "correlationSP500": 0.1, "alpha": 0.1, "beta": 0.1, "treynor": 0.1, "avgLeverage": 0.1, "maxLeverage": 0.1 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalEquity

PerformanceBase

StrategyIdinteger or null(int64)required

The Strategy ID to get data for

DoNotAggregateDailyEquityboolean or null

If TRUE, DailyEquity will not be aggregated by day

{ "StrategyId": 0, "DoNotAggregateDailyEquity": true }

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, "dailyEquity": [], "monthlyResults": [] } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetStrategyHistoricalOrders

GetStrategyHistoricalOrders

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 or null

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

StartDatestring or null

UTC StartDate (Optional)

EndDatestring or null

UTC EndDate (Optional)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "StrategyId": 0, "SignalId": 0, "OrderStatus": "string", "StartDate": "string", "EndDate": "string", "Cursor": "string", "Limit": 0, "AscendingOrder": true }

GetStrategyOpenPositions

PerformanceBase

StrategyIdsArray of integers(int64)required

A list of Strategy IDs

SecurityTypestring or null

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

Enum"CS""FUT""OPT""FOR"
{ "StrategyIds": [ 0 ], "SecurityType": "CS" }

GetSubscribedStrategies

GetSubscribedStrategies

PersonIdinteger or null(int64)required

PersonId

ActiveOnlyboolean

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

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "ActiveOnly": true, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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" } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

GetSubscribers

GetSubscribers

StrategyIdinteger or null(int64)required

The C2 StrategyId

ActiveOnlyboolean or null

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

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "StrategyId": 0, "ActiveOnly": true, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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": [ {} ] } }

GetSubscriptionRevenue

GetSubscriptionRevenue

StrategyIdinteger or null(int64)

The C2 StrategyId (Optional)

StartDatestring or null

StartDate (Optional)

EndDatestring or null

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)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "StrategyId": 0, "StartDate": "string", "EndDate": "string", "StrategyOwnerPersonId": 0, "SubscriberPersonId": 0, "WhiteLabelSiteId": 0, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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": [ {} ] } }

GetWatchListMembers

GetWatchListMembers

PersonIdinteger or null(int64)required

The C2 PersonId

WatchListIdinteger or null(int64)required

The WatchList Id

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "WatchListId": 0, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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": [ {} ] } }

GetWatchLists

GetWatchLists

PersonIdinteger or null(int64)required

The C2 PersonId

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

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

Hello

Namestring or nullrequired

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

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 }

HistoricalStrategyResponseDTO

idinteger(int64)

Report Id

strategyIdinteger or null(int64)

The C2 SystemID

reportDateinteger or null(int64)

The report date in YYYYMMDD format, New York time zone

statisticsArray of objects or null(HistoricalStatDTO)

The list of statistics

{ "id": 0, "strategyId": 0, "reportDate": 0, "statistics": [ { "Id": 0, "StatName": "string", "Operator": "string", "StatValue": 0.1 } ] }

ManageWatchList

ManageWatchList

PersonIdinteger or null(int64)required

The C2 PersonId

ModificationSourcestring or nullrequired

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

Enum"LIST""MEMBER"
ModificationActionstring or nullrequired

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

Enum"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 or null

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

{ "PersonId": 0, "WatchListId": 0, "ModificationSource": "LIST", "ModificationAction": "ADD", "StrategyId": 0, "WatchListName": "string" }

NewAutotradeOrder

NewAutotradeOrder

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

Orderobject(OrderDTO)required
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

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

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)

{ "Account": "string", "PersonId": 0, "Order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "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, "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 } ], "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 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

NewStrategyOrder

NewStrategyOrder

Orderobject(OrderDTO)required
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

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

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)

{ "Order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "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, "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

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

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, "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, "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

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

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, "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, "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" }

PerformanceBase

PerformanceBase

object(PerformanceBase)

PerformanceBase

{}

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

{ "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 }

PositionBase

quantitynumber or null(double)

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

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
{ "quantity": 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

quantitynumber or null(double)

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

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
strategyIdinteger or null(int64)

The C2 StrategyId

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

avgPxnumber or null(double)

The position average price

{ "quantity": 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 }, "strategyId": 0, "strategyName": "string", "currency": "string", "openedDate": "2019-08-24T14:15:22Z", "avgPx": 0.1 }

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 } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceAutotradeOrder

ReplaceAutotradeOrder

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

OrderIdstring or nullrequired

The OrderID to be replaced

Pricenumber or null(double)required

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 } ], "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 } ], "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

ReplaceStrategyOrder

ReplaceStrategyOrder

Orderobject(OrderDTO)required
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

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

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)

{ "Order": { "id": 0, "orderId": "string", "strategyId": 0, "strategyName": "string", "signalId": 0, "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, "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

ResetPaperTrade

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

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" } ] }

SearchAccounts

SearchAccounts

Accountstring or null

The Autotrade account (optional)

PersonIdinteger or null(int64)

PersonId (optional)

BrokerIdinteger or null(int32)

The Autotrade BrokerId (optional)

FirstNamestring or null

The FirstName (optional). Not case-sensitive

LastNamestring or null

The FirstName (optional). Not case-sensitive

Emailstring or null

The Email (optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label site Id (optional)

CountryCodestring or null

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

IPAddressstring or null

The person's last known IP address (optional)

Phonestring or null

The Phone number (optional)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "Account": "string", "PersonId": 0, "BrokerId": 0, "FirstName": "string", "LastName": "string", "Email": "string", "WhiteLabelSiteId": 0, "CountryCode": "string", "IPAddress": "string", "Phone": "string", "Cursor": "string", "Limit": 0, "AscendingOrder": true }

SearchHistoricalStrategies

SearchHistoricalStrategies

ReportDateinteger or null(int64)required

The date to look for. The server will automatically adjust the date to the nearest previous available day. Format must be YYYYMMDD.

RequirementsArray of objects or null(HistoricalStatDTO)

(optional) Add a maximum of 6 statistics requirements here. Use the GetHistoricalStrategiesStatsList endpoint for a list of available statistics for the specified date

{ "ReportDate": 0, "Requirements": [ { "Id": 0, "StatName": "string", "Operator": "string", "StatValue": 0.1 } ] }

SearchHistoricalStrategiesResponse

resultsArray of objects or null(HistoricalStrategyResponseDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "strategyId": 0, "reportDate": 0, "statistics": [] } ], "pagination": { "prev_cursor": "string", "next_cursor": "string" }, "responseStatus": { "errorCode": "string", "message": "string", "errors": [ {} ] } }

SearchProfiles

SearchProfiles

PersonIdinteger or null(int64)

The C2 PersonId (optional)

FirstNamestring or null

The FirstName. Not case-sensitive (optional)

LastNamestring or null

The FirstName. Not case-sensitive (optional)

Emailstring or null

The Email. Not case-sensitive (optional)

WhiteLabelSiteIdinteger or null(int64)

The White Label site Id (optional)

CountryCodestring or null

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

DivisionCodestring or null

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

IPAddressstring or null

The person's last known IP address (optional)

Phonestring or null

The verified Phone number (optional)

IsAliveboolean or null

The Person's Status (optional)

IsEmailValidatedboolean or null

The Person's email validation status (optional)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "PersonId": 0, "FirstName": "string", "LastName": "string", "Email": "string", "WhiteLabelSiteId": 0, "CountryCode": "string", "DivisionCode": "string", "IPAddress": "string", "Phone": "string", "IsAlive": true, "IsEmailValidated": true, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

SearchStrategies

SearchStrategies

SecurityTypestring or null

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

Enum"CS""FUT""OPT""FOR"
CreatedBeforeDatestring or null

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

StrategyNamestring or null

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)

Cursorstring or null

The Cursor from the previous resultset

Limitinteger(int32)

Result size limit. We will enforce a max size limit for all endpoints. Default is 1000

AscendingOrderboolean

Set to FALSE if you want to get the newest results first. Default is TRUE (oldest results first)

{ "SecurityType": "CS", "CreatedBeforeDate": "string", "StrategyName": "string", "StrategyOwnerPersonId": 0, "WhiteLabelSiteId": 0, "Cursor": "string", "Limit": 0, "AscendingOrder": true }

SearchStrategiesResponse

resultsArray of objects or null(StrategyBasicDetailsDTO)

Result array

paginationobject(PaginationProperties)
responseStatusobject(ResponseStatus)
{ "results": [ { "id": 0, "strategyId": 0, "isAlive": true, "isHidden": true, "hiddenReason": "string", "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

SetAutotradeSettings

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

BrokerIdinteger or null(int32)required

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

SetDesiredPositions

StrategyIdinteger or null(int64)required

The C2 StrategyId

PositionsArray of objects or null(PositionBase)required

The list of positions that must exist in the strategy

quantitynumber or null(double)

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

c2Symbolobject(C2SymbolDTO)
exchangeSymbolobject(ExchangeSymbolDTO)
{ "StrategyId": 0, "Positions": [ { "quantity": 0.1, "c2Symbol": {}, "exchangeSymbol": {} } ] }

SetDesiredPositionsResponse

resultsArray of objects or null(DesiredPositionResponseDTO)

Result array

responseStatusobject(ResponseStatus)
{ "results": [ { "newSignals": [], "canceledSignals": [] } ], "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

{ "signalId": 0, "profitTargetSignalId": 0, "stopLossSignalId": 0, "exitSignalsOCAGroupId": 0 }

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

StartAutotrade

Accountstring or nullrequired

The Autotrade account

PersonIdinteger or null(int64)required

The C2 PersonID

BrokerIdinteger or null(int32)required

The BrokerId

StrategyIdinteger or null(int64)required

The StrategyId

ScalingPercentageinteger(int64)required

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

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

MaxForexinteger or null(int32)

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

StocksEnabledboolean

(optional) TRUE to enable autotrading Stocks for this strategy. Default is 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

ShortOptionsEnabledboolean

(optional) TRUE to enable the shorting of Options when autotrading this strategy. Default is 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.

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": true, "MaxFutures": 0, "ForexEnabled": true, "MaxForex": 0, "StocksEnabled": true, "MaxStocksDollars": 0, "OptionsEnabled": true, "ShortOptionsEnabled": true, "MaxOptions": 0, "DoNotJoinCurrentSystemPositions": true, "AutoStopLoss": 0, "AccountUserName": "string", "AccountPassword": "string" }

StopAutotrade

PerformanceBase

Accountstring or nullrequired

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

{ "Account": "string", "PersonId": 0, "BrokerId": 0, "StrategyId": 0, "LeavePositionsOpen": true, "TerminateStrategySubscription": true }

StrategyBasicDetailsDTO

idinteger(int64)

Same value as StrategyId

strategyIdinteger(int64)

The C2 SystemID

isAliveboolean

TRUE if the Strategy is alive

isHiddenboolean or null

TRUE if Strategy is a hidden for some users

hiddenReasonstring or null

The reason why it is private, if any

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, "isHidden": true, "hiddenReason": "string", "isPrivate": true, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": { "property1": true, "property2": true }, "monthlyCost": 0.1, "strategyOwnerId": 0, "whiteLabelSiteId": 0 }

StrategyDailyEquityDTO

datestring(date-time)

UTC Date of the value

equitynumber(double)

The equity of the strategy including average trading costs

indexnumber(double)

The reference index equity

{ "date": "2019-08-24T14:15:22Z", "equity": 0.1, "index": 0.1 }

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

isHiddenboolean or null

TRUE if Strategy is a hidden for some users

hiddenReasonstring or null

The reason why it is private, 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

equitynumber or null(double)

The current strategy equity

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 strategy margin used

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

winTradesnumber or null(double)

% of winning trades

winMonthsnumber or null(double)

The ratio of winning months

maxDrawdownnumber or null(double)

All-time maximum % drawdown

avgWinDollarsnumber or null(double)

The average Strategy winning trade in dollars

avgLossDollarsnumber or null(double)

The average Strategy losing trade in dollars

correlationSP500number or null(double)

The Correlation to the S&P 500

alphanumber or null(double)

The Alpha ratio

betanumber or null(double)

The Beta ratio

treynornumber or null(double)

The Treynor ratio

avgLeveragenumber or null(double)

The average leverage used by the Strategy

maxLeveragenumber or null(double)

The max leverage used by the Strategy

{ "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, "isHidden": true, "hiddenReason": "string", "isPrivate": true, "aum": 0, "auM_NumberOfAccounts": 0, "return": 0.1, "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, "winTrades": 0.1, "winMonths": 0.1, "maxDrawdown": 0.1, "avgWinDollars": 0.1, "avgLossDollars": 0.1, "correlationSP500": 0.1, "alpha": 0.1, "beta": 0.1, "treynor": 0.1, "avgLeverage": 0.1, "maxLeverage": 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

dailyEquityArray of objects or null(StrategyDailyEquityDTO)

Daily stats for the strategy. One row per date.

monthlyResultsArray of objects or null(StrategyMonthlyResultsDTO)

Monthly stats for the strategy. One row per date.

{ "strategyId": 0, "strategyName": "string", "startDate": "2019-08-24T14:15:22Z", "securityTypesEnabled": { "property1": true, "property2": true }, "monthlyCost": 0.1, "strategyOwnerId": 0, "dailyEquity": [ { "date": "2019-08-24T14:15:22Z", "equity": 0.1, "index": 0.1 } ], "monthlyResults": [ { "month": 0, "monthName": "string", "yearZeroName": 0, "yearOneName": 0, "yearTwoName": 0, "yearThreeName": 0, "yearFourName": 0, "yearZeroReturn": 0.1, "yearOneReturn": 0.1, "yearTwoReturn": 0.1, "yearThreeReturn": 0.1, "yearFourReturn": 0.1 } ] }

StrategyIdDTO

strategyIdinteger(int64)

The C2 StrategyId

{ "strategyId": 0 }

StrategyMonthlyResultsDTO

monthinteger(int32)

The integer representing the month of the year

monthNamestring or null

The English name of the month

yearZeroNameinteger(int32)

The latest year e.g. 2023

yearOneNameinteger(int32)

The 1st year

yearTwoNameinteger(int32)

The 2nd year

yearThreeNameinteger(int32)

The 3rd year

yearFourNameinteger(int32)

The 4th year

yearZeroReturnnumber(double)

The latest year return %

yearOneReturnnumber(double)

The 1st year return %

yearTwoReturnnumber(double)

The 2nd year return %

yearThreeReturnnumber(double)

The 3rd year return %

yearFourReturnnumber(double)

The 4th year return %

{ "month": 0, "monthName": "string", "yearZeroName": 0, "yearOneName": 0, "yearTwoName": 0, "yearThreeName": 0, "yearFourName": 0, "yearZeroReturn": 0.1, "yearOneReturn": 0.1, "yearTwoReturn": 0.1, "yearThreeReturn": 0.1, "yearFourReturn": 0.1 }

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

{ "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" }

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 }

UpdateProfile

UpdateProfile

PersonIdinteger or null(int64)required

The C2 PersonId

{ "PersonId": 0 }

UpdateStrategy

UpdateStrategy

StrategyIdinteger or null(int64)required

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 }

Autotrade

Operations

Hello

Request

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

Bodyapplication/json
Namestring or nullrequired

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 '{
    "Name": "string"
  }'

Responses

OK

Bodyapplication/json
resultsArray of strings or null

Result array

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

General

Operations

Strategies

Operations