Skip to main content

Place Your First Order

This guide will walk you through placing your first order on BettorEdge Markets, explaining all the order parameters and options available.

Prerequisites

What is an Order?

An order is your request to buy contracts in a specific market outcome. When you place an order:

  • You specify what you want to trade (order context hash)
  • You specify how much you're willing to pay (price)
  • You specify how much you want to invest (amount)
  • Your order either fills immediately (if liquidity exists) or waits for someone to match it

How Orders Work

When you place an order on BettorEdge, you're creating a limit order that lets you set the maximum price you're willing to pay:

  • You specify your price (e.g., $0.65)
  • Your order only fills at that price or better
  • If no one matches your price, your order waits in the market
  • You become liquidity for other traders

Example:

  • You place a buy order at $0.65
  • Someone sells at $0.65 → Your order fills
  • Only sellers at $0.60 exist → Your order waits (doesn't fill at worse price)

All orders placed through the API use real USD from your account balance.

Placing an Order

Now let's place your first order. Make sure you have:

  1. Your Bearer token from authentication
  2. An order context hash (from available markets or built yourself)

API Request

curl -X POST https://proxy.bettoredge.com/markets/v1/orders/order/place \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"order_context_hash": "team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5",
"price": 0.65,
"amount": 100,
"market_type": "FOR_MONEY"
}'

Understanding Order Parameters

order_context_hash (required)

The complete hash identifying what you want to trade.

Format: contest_type:contest_id:market_id:side:side_type:side_id:variable

Example: team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5

This means: "LeBron James to score over 31.5 points in Lakers vs Nuggets"

See the Understanding Liquidity guide for how to get this hash.

price (required)

Your limit price - the maximum you're willing to pay per contract.

Format: Decimal between 0.00 and 1.00

Examples:

  • 0.65 = You'll pay up to $0.65 per contract
  • 0.50 = You'll pay up to $0.50 per contract
  • 0.85 = You'll pay up to $0.85 per contract

How it works:

  • If someone is selling at $0.60 and you bid $0.65, you'll buy at $0.60 (you get the better price)
  • If no one is selling at $0.65 or lower, your order waits in the market
  • Other traders see your order and can decide to sell to you

Choosing a price:

  • Higher price = More likely to fill immediately, but lower potential profit
  • Lower price = Less likely to fill, but higher potential profit
  • Check existing liquidity to see current market prices

amount (required)

The total dollar amount you want to invest (your cost basis).

Format: Number (dollars)

Examples:

  • 100 = Invest $100
  • 50 = Invest $50
  • 250 = Invest $250

How contracts are calculated:

Contracts = Amount / Price

Example:

  • Amount: $100
  • Price: $0.65
  • Contracts: $100 / $0.65 = ~153 contracts

If you win:

  • Each contract pays $1.00
  • You receive: 153 × $1.00 = $153
  • Your profit: $153 - $100 = $53

market_type (required)

The type of order you're placing.

Value: "FOR_MONEY"

Important: Currently, the API only supports real USD orders. You must use "FOR_MONEY" as the market_type value. This means you are placing an order with real money from your account balance.

Response

Success Response

{
"placement_status": "success",
"message": "Order placed successfully",
"order_context": {
"order_ids": ["order_xyz789"],
"position_ids": ["position_abc123"],
"title": "LeBron James Over 31.5 Points",
"price": 0.65,
"amount": 100,
"order_context_hash": "team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5",
"status": "approved"
}
}

Response Fields

FieldDescription
placement_statusStatus of the placement: "success" or "failed"
messageHuman-readable message about the order
error(optional) Error message if placement failed
order_context(optional) Order details if placement succeeded
order_context.order_idsArray of order IDs created or updated
order_context.position_idsArray of position IDs created or updated
order_context.titleHuman-readable title of the market
order_context.pricePrice of the order
order_context.amountTotal amount invested
order_context.order_context_hashThe market identifier hash
order_context.statusOrder status: "approved", "cancelled", or "closed"

Order Status

The response tells you if your order placement was successful via placement_status. The actual order status is found in order_context.status:

Approved

  • Order was successfully placed
  • Check order_ids and position_ids to see what was created
  • If position_ids is not empty, you have an active position
  • If only order_ids exist, the order is resting and waiting to fill

Cancelled

  • Order was cancelled before executing
  • No position was created

Closed

  • Order has been fully executed and closed
  • All contracts were filled
  • You have a complete position

Understanding Your Investment

Let's break down an example order:

Order Details:

  • Order Context Hash: team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5
  • Price: $0.65
  • Amount: $100

What You Get:

  • Contracts: $100 / $0.65 = 153.85 contracts (rounded to 153)
  • Cost Basis: $100

Potential Outcomes:

If LeBron scores over 31.5 points (you win):

  • Each contract pays: $1.00
  • You receive: 153 × $1.00 = $153
  • Your profit: $153 - $100 = $53 profit (53% return)

If LeBron scores 31.5 points or under (you lose):

  • Each contract pays: $0.00
  • You receive: $0
  • Your loss: $100 loss (100% of investment)

Trading Strategies

Strategy 1: Take Existing Liquidity

Find existing liquidity and match their price for instant execution.

// From available markets API
const liquidity = market.sides[0].liquidities[0];

const order = {
order_context_hash: liquidity.order_context_hash,
price: liquidity.price, // Match their price
amount: 100,
market_type: 'FOR_MONEY'
};

Pros:

  • Instant fill
  • Know exactly what you're getting
  • No waiting

Cons:

  • May not get the best price
  • Limited to available liquidity

Strategy 2: Set Your Own Price

Build your own hash and set a better price.

const order = {
order_context_hash: 'team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5',
price: 0.60, // Lower than current market ($0.65)
amount: 100,
market_type: 'FOR_MONEY'
};

Pros:

  • Better price = higher potential profit
  • You set the terms

Cons:

  • May not fill immediately
  • Need to wait for someone to match

Strategy 3: Create New Markets

Trade at lines that don't exist yet.

const order = {
order_context_hash: 'team:lakers_nuggets_20240115:12345:over:athlete:2954:35.0',
price: 0.45, // LeBron over 35 points
amount: 100,
market_type: 'FOR_MONEY'
};

Pros:

  • Trade your exact thesis
  • Potentially unique edge

Cons:

  • May take time to fill
  • You're the first liquidity

Common Scenarios

Scenario 1: Order Fills Immediately

You place an order at $0.65, and someone is already selling at $0.63.

Response:

{
"placement_status": "success",
"message": "Order placed successfully",
"order_context": {
"order_ids": [],
"position_ids": ["position_abc123"],
"title": "LeBron James Over 31.5 Points",
"price": 0.63,
"amount": 100,
"order_context_hash": "team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5",
"status": "approved"
}
}

Result:

  • Your order fills at $0.63 (you get the better price!)
  • position_ids array contains your new position
  • order_ids is empty because the order filled completely
  • You have a position immediately

Scenario 2: Order Waits in Market

You place an order at $0.60, but sellers want $0.65.

Response:

{
"placement_status": "success",
"message": "Order placed successfully",
"order_context": {
"order_ids": ["order_xyz789"],
"position_ids": [],
"title": "LeBron James Over 31.5 Points",
"price": 0.60,
"amount": 100,
"order_context_hash": "team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5",
"status": "approved"
}
}

Result:

  • Your order stays open (resting order)
  • order_ids array contains your resting order
  • position_ids is empty because nothing filled yet
  • You're now offering liquidity at $0.60
  • When someone decides to sell at $0.60, your order fills

Scenario 3: Partial Fill

You place a $100 order at $0.65, but only $60 of liquidity exists at that price.

Response:

{
"placement_status": "success",
"message": "Order placed successfully",
"order_context": {
"order_ids": ["order_xyz789"],
"position_ids": ["position_abc123"],
"title": "LeBron James Over 31.5 Points",
"price": 0.65,
"amount": 100,
"order_context_hash": "team:lakers_nuggets_20240115:12345:over:athlete:2954:31.5",
"status": "approved"
}
}

Result:

  • Both order_ids and position_ids are populated
  • Part of your order filled → You have a position
  • Part of your order is resting → Waiting for more liquidity
  • You have both a position and an open order

Best Practices

  1. Check Your Balance - Make sure you have enough funds before placing orders
  2. Review the Hash - Double-check your order context hash is correct
  3. Price Wisely - Look at existing liquidity to understand market prices
  4. Start Small - Place smaller orders while learning
  5. Monitor Status - Check if your order filled or is still open

Next Steps

After placing your order:

Common Questions

What happens if my order doesn't fill?

Your order stays open in the market until:

  • Someone matches your price
  • You cancel the order
  • The market closes/settles

Can I cancel an open order?

Yes! You can cancel open orders that haven't filled yet (API documentation coming soon).

What if I want to sell instead of buy?

Selling positions will be covered in an upcoming guide. Selling creates liquidity on the opposite side.

How do I know if my price is good?

Check the liquidities array in available markets to see current prices. If you want to fill immediately, match or beat those prices.


Need help? Check out the Orders API Reference for detailed endpoint documentation.