Skip to main content

Step 1: List your accounts

Check which bookmaker accounts are configured for your API key:
curl -H "X-API-Key: YOUR_API_KEY" \
  https://v2.55-tech.com/accounts
Response includes each account’s bookmaker, balance, priority, stake limits, and currency:
[
  {
    "bookmaker": "pinnacle",
    "username": "pinnacle_main",
    "client": "your-client",
    "password": "***",
    "balance": 5000.0,
    "active": true,
    "priority": 10,
    "maxStake": 1000.0,
    "minStake": 5.0,
    "currencyId": "USD",
    "verifyBetslip": false,
    "meta": {},
    "createdAt": "2026-01-01T00:00:00Z",
    "updatedAt": "2026-02-01T12:00:00Z"
  }
]

Step 2: Get a betslip

Before placing a bet, retrieve current odds and limits. You need a fixtureId, outcomeId, and playerId:
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://v2.55-tech.com/betslip?fixtureId=id1000002361061419&outcomeId=101&playerId=0"
The betslip returns live odds from every bookmaker that has this market, with fixture and outcome metadata:
{
  "fixtureId": "id1000002361061419",
  "outcomeId": 101,
  "playerId": 0,
  "client": "your-client",
  "fixtureInfo": {
    "sport": { "sportId": 10, "sportName": "Soccer" },
    "tournament": { "tournamentName": "Serie A", "categoryName": "Italy" },
    "participants": {
      "participant1Name": "AS Roma",
      "participant2Name": "Cagliari Calcio"
    }
  },
  "outcomeInfo": {
    "marketName": "Full Time Result",
    "outcomeName": "1"
  },
  "odds": {
    "pinnacle": {
      "id1000002361061419:pinnacle:101:0": {
        "price": 1.5,
        "limit": 15000,
        "limitMin": 5,
        "limitCurrency": "USD",
        "active": true,
        "account": "pinnacle_main"
      }
    },
    "sharpbet": {
      "id1000002361061419:sharpbet:101:0": {
        "price": 1.52,
        "limit": 751.34,
        "limitMin": 1,
        "limitCurrency": "EUR",
        "limitUsd": 886.13,
        "active": true,
        "account": "sharpbet_user"
      }
    }
  }
}
Use the OddsPapi API to discover fixture IDs and outcome IDs. ABP uses OddsPapi identifiers directly.

Step 3: Place an order

Place a bet order with minimum price protection. Each order needs a unique requestUuid for idempotency:
curl -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "orders": [
      {
        "requestUuid": "eb45b192-317b-42d5-9f65-af497b9fa8c1",
        "fixtureId": "id1000004461512432",
        "outcomeId": 103,
        "playerId": 0,
        "orderStake": 10.0,
        "orderPrice": 1.95,
        "userRef": "my-strategy-1",
        "testOrder": false
      }
    ]
  }' \
  https://v2.55-tech.com/place-orders
Key fields:
FieldRequiredDescription
requestUuidYesUnique UUID for idempotency (duplicates within 5 min return 409)
fixtureIdYesOddsPapi fixture ID
outcomeIdYesMarket outcome (e.g., 103 = away win)
playerIdYesSet to 0 for non-player-prop markets
orderStakeYesTotal amount to wager
orderPriceYesMinimum acceptable decimal odds
userRefYesYour reference for grouping related orders
testOrderYesValidate only, don’t actually place (false for real bets)
bookmakersNoComma-separated slugs to target (omit for automatic selection)
orderCurrencyNoCurrency code (default: USD)
acceptBetterOddsNoAccept odds better than orderPrice (default: true)
acceptPartialStakeNoAllow partial fills (default: true)
backNoBack bet (true) or lay bet (false) (default: true)
expiresAtNoISO 8601 expiry time (default: 5 seconds from now)
metaNoCustom metadata object (stored but not sent to bookmaker)
Response:
{
  "status": "accepted",
  "acceptedOrders": [
    {
      "orderId": 327,
      "requestUuid": "eb45b192-317b-42d5-9f65-af497b9fa8c1",
      "orderStatus": "FILLED",
      "fixtureId": "id1000004461512432",
      "outcomeId": 103,
      "orderStake": 10.0,
      "orderPrice": 1.95,
      "filledStake": 10.0,
      "bets": [
        {
          "betId": 73,
          "bookmaker": "pinnacle",
          "placedPrice": 1.98,
          "placedStake": 10.0,
          "betStatus": "CONFIRMED"
        }
      ]
    }
  ],
  "declinedOrders": []
}
Orders that fail validation appear in declinedOrders with a declineReason:
{
  "status": "declined",
  "acceptedOrders": [],
  "declinedOrders": [
    {
      "requestUuid": "fb5f2dd9-c855-4ba9-8ef9-4c2278ca2f1d",
      "fixtureId": "id1000004461512432",
      "outcomeId": 103,
      "declineReason": "Order stake 100.00 USD exceeds available limit 50.00 USD"
    }
  ]
}

Step 4: Track your order

Query orders by userRef, orderIds, or requestUuids (at least one filter required):
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://v2.55-tech.com/orders?userRef=my-strategy-1"
View individual bets for specific orders:
curl -H "X-API-Key: YOUR_API_KEY" \
  "https://v2.55-tech.com/bets?orderIds=327"
Each bet includes the bookmaker, placed price, placed stake, bet status, and settlement status:
{
  "status": "success",
  "bets": [
    {
      "betId": 73,
      "orderId": 327,
      "bookmaker": "pinnacle",
      "bookmakerBetId": "3332684214",
      "placedStake": 10.0,
      "placedPrice": 1.98,
      "placedCurrency": "USD",
      "betStatus": "CONFIRMED",
      "settlementStatus": "UNSETTLED",
      "account": "pinnacle_main",
      "userRef": "my-strategy-1"
    }
  ],
  "count": 1,
  "hasMore": false,
  "nextCursor": null
}

Step 5: Check positions & PnL

View your aggregated open positions (grouped by bookmaker by default):
curl -H "X-API-Key: YOUR_API_KEY" \
  https://v2.55-tech.com/positions
{
  "status": "success",
  "groupBy": "bookmaker",
  "positions": [
    { "bookmaker": "pinnacle", "openBets": 5, "totalStake": 250.0, "avgPrice": 1.92 }
  ],
  "count": 1,
  "totalStake": 250.0,
  "totalOpenBets": 5
}
View profit and loss:
curl -H "X-API-Key: YOUR_API_KEY" \
  https://v2.55-tech.com/pnl
{
  "status": "success",
  "groupBy": "bookmaker",
  "pnl": [
    { "bookmaker": "pinnacle", "settledBets": 42, "wins": 23, "losses": 17, "netPnl": 250.0, "winRate": 54.8 }
  ],
  "count": 1,
  "totalNetPnl": 250.0,
  "totalStaked": 2100.0,
  "totalSettledBets": 42
}

Next steps

WebSocket updates

Get real-time order, bet, and settlement updates.

API reference

Explore all available endpoints.