List Maker-Taker Arbitrage Strategies
List all maker-taker arbitrage strategies for the authenticated user. Returns strategies sorted by creation time (newest first).
Endpoint: GET https://api.hypereth.io/v2/all/strategy/list/maker-taker-arbitrage
Authorization
ApiKeyAuth In: header
Response Body
application/json
curl -X GET "https://api.hypereth.io/v2/all/strategy/list/maker-taker-arbitrage"{
"strategies": [
{
"strategyId": "maker_taker_550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"createdAt": 1710000000000,
"updatedAt": 1710000005000,
"stateHistory": [
"Pending",
"PlacingMaker",
"WaitingTrigger",
"PlacingTaker",
"Completed"
],
"makerLeg": {
"orderId": "12345",
"status": "closed",
"filledSize": "100",
"remainingSize": "0",
"avgFillPrice": "0.01",
"placeTxHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"cancelTxHash": null,
"recovery": null
},
"takerLeg": {
"orderId": "67890",
"status": "closed",
"filledSize": "100",
"remainingSize": "0",
"avgFillPrice": "0.0099",
"txHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
"recovery": null
},
"request": {
"symbol": "MON",
"marketType": "spot",
"references": "MON/AUSD",
"amount": "100",
"maker": {
"exchange": "kuru",
"accountId": "acc_A",
"side": "buy",
"price": "0.01"
},
"taker": {
"exchange": "kuru",
"accountId": "acc_B",
"side": "sell"
}
}
},
{
"strategyId": "maker_taker_660e8400-e29b-41d4-a716-446655440001",
"status": "completed_with_recovery",
"createdAt": 1710000010000,
"updatedAt": 1710000020000,
"stateHistory": [
"Pending",
"PlacingMaker",
"WaitingTrigger",
"SafeExiting",
"Recovering",
"CompletedWithRecovery"
],
"makerLeg": {
"orderId": "12346",
"status": "canceled",
"filledSize": "100",
"remainingSize": "0",
"avgFillPrice": "0.02",
"placeTxHash": "0x2234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"cancelTxHash": "0xdddddd1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
"recovery": {
"orderId": "99999",
"txHash": "0xcccccc1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
"status": "closed",
"filledSize": "50.5",
"remainingSize": "0",
"avgFillPrice": "0.0199"
}
},
"takerLeg": null,
"request": {
"symbol": "MON",
"marketType": "spot",
"references": "MON/AUSD",
"amount": "100",
"maker": {
"exchange": "kuru",
"accountId": "acc_A",
"side": "sell",
"price": "0.02"
},
"taker": {
"exchange": "kuru",
"accountId": "acc_B",
"side": "buy"
}
}
},
{
"strategyId": "maker_taker_770e8400-e29b-41d4-a716-446655440002",
"status": "waiting_trigger",
"createdAt": 1710000030000,
"updatedAt": 1710000031000,
"stateHistory": [
"Pending",
"PlacingMaker",
"WaitingTrigger"
],
"makerLeg": {
"orderId": "12347",
"status": "open",
"filledSize": "0",
"remainingSize": "200",
"avgFillPrice": null,
"placeTxHash": "0x3334567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"cancelTxHash": null,
"recovery": null
},
"takerLeg": null,
"request": {
"symbol": "MON",
"marketType": "spot",
"references": "MON/AUSD",
"amount": "200",
"maker": {
"exchange": "kuru",
"accountId": "acc_A",
"side": "buy",
"price": "0.015"
},
"taker": {
"exchange": "kuru",
"accountId": "acc_B",
"side": "sell"
}
}
}
],
"requestId": "req_123456789"
}Get Strategy Status GET
Get the current status and details of a submitted maker-taker arbitrage strategy. **Status Lifecycle**: - `pending` → Strategy submitted, not yet started - `maker_placing` → Placing maker order - `waiting_trigger` → Maker order placed, waiting for trigger conditions - `taker_triggered` → Taker order being executed - `reconciling` → Checking for position discrepancies - `completed` → Strategy completed successfully - `completed_with_recovery` → Completed with position recovery - `failed` → Strategy failed (see error field) - `cancelled` → Strategy was cancelled - `timed_out` → Strategy timed out - `requires_intervention` → Manual intervention required **Endpoint**: `GET https://api.hypereth.io/v2/all/strategy/status/maker-taker-arbitrage/{strategyId}`
Cancel Maker-Taker Arbitrage Strategy POST
Cancel a running maker-taker arbitrage strategy. The strategy will be transitioned to `cancelled` status if it can be cancelled. Strategies that are already completed, failed, or timed out cannot be cancelled. **Endpoint**: `POST https://api.hypereth.io/v2/all/strategy/cancel/maker-taker-arbitrage/{strategyId}`