Skip to main content

Step 1: List your accounts

Check which bookmaker accounts are configured for your API key:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  https://v2.55-tech.com/accounts
Response includes each account’s bookmaker, balance, priority, stake limits, and currency:
[
  {
    "client": "your-client",
    "bookmaker": "pinnacle",
    "username": "your-username",
    "balance": 5000.00,
    "active": true,
    "priority": 10,
    "maxStake": 1000.00,
    "minStake": 5.00,
    "currencyId": "USD"
  }
]

Step 2: Get a betslip

Before placing a bet, retrieve current odds and limits:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  "https://v2.55-tech.com/betslip?fixtureId=YOUR_FIXTURE_ID&outcomeId=161&playerId=0"
The betslip returns live odds from every bookmaker that has this market:
{
  "pinnacle": {
    "price": 1.85,
    "limit": 5000.00,
    "limitMin": 5.00,
    "limitCurrency": "USD",
    "active": true,
    "bookmakerFixtureId": "123456",
    "bookmakerMarketId": "789",
    "bookmakerOutcomeId": "1"
  },
  "betfair_ex": {
    "price": 1.88,
    "limit": 2000.00,
    "limitMin": 2.00,
    "limitCurrency": "GBP",
    "active": true
  }
}
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:
curl -X POST \
  -H "X-ABP-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "orders": [
      {
        "fixtureId": "id1000000861624412",
        "outcomeId": 161,
        "playerId": 0,
        "orderStake": 50,
        "orderPrice": 1.80,
        "orderCurrency": "USD",
        "userRef": "my-strategy-1",
        "acceptBetterOdds": true,
        "acceptPartialStake": true,
        "back": true,
        "testOrder": false
      }
    ]
  }' \
  https://v2.55-tech.com/place-orders
Key fields:
FieldRequiredDescription
fixtureIdYesOddsPapi fixture ID
outcomeIdYesMarket outcome (e.g., 161 = home win)
playerIdYesSet to 0 for non-player-prop markets
orderStakeYesTotal amount to wager
orderPriceYesMinimum acceptable decimal odds
orderCurrencyYesCurrency code (e.g., USD)
userRefNoYour reference for grouping related orders
acceptBetterOddsNoAccept odds better than orderPrice (default: true)
acceptPartialStakeNoAllow partial fills across multiple bets (default: true)
backNoBack bet (true) or lay bet (false) (default: true)
testOrderNoValidate only, don’t actually place (default: false)
expiresAtNoISO 8601 expiry time (default: 5 seconds from now)
Response:
{
  "orders": [
    {
      "orderId": 12345,
      "requestUuid": "eb45b192-358b-32d5-9f65-af497b9fa8c1",
      "orderStatus": "PENDING",
      "fixtureId": "id1000000861624412",
      "outcomeId": 161,
      "orderStake": 50,
      "orderPrice": 1.80,
      "filledStake": 0,
      "bets": []
    }
  ],
  "declinedOrders": []
}
Orders that fail validation appear in declinedOrders with a declineReason:
{
  "declinedOrders": [
    {
      "fixtureId": "...",
      "outcomeId": 161,
      "declineReason": "Order stake 150.00 USD exceeds available limit 100.00 USD"
    }
  ]
}

Step 4: Track your order

Check order status:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  https://v2.55-tech.com/orders
View individual bets placed for your orders:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  https://v2.55-tech.com/bets
Each bet includes the bookmaker, placed price, placed stake, bet status, and settlement status:
{
  "betId": 1,
  "orderId": 12345,
  "bookmaker": "pinnacle",
  "bookmakerBetId": "3587791057",
  "placedStake": 50.00,
  "placedPrice": 1.85,
  "placedCurrency": "USD",
  "betStatus": "CONFIRMED",
  "settlementStatus": "UNSETTLED",
  "account": "your-username",
  "userRef": "my-strategy-1"
}

Step 5: Check positions & PnL

View your aggregated exposure:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  https://v2.55-tech.com/positions
View profit and loss:
curl -H "X-ABP-API-KEY: YOUR_API_KEY" \
  https://v2.55-tech.com/pnl

Next steps