Quickstart
This guide walks you through creating an account, browsing events, and placing your first trade on Intotes -- all in about 5 minutes.
Base URL: https://intotes.com/api/v1
All examples use curl. Responses are abbreviated for clarity.
Step 1: Create an Account​
Register with your email and password. The password must be at least 8 characters.
curl -X POST https://intotes.com/api/v1/auth/sign-up \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"password": "your_secure_password",
"language": "en"
}'
Response (201):
{
"success": true,
"message": "User created successfully. Please check your email for verification code.",
"user_id": 42
}
A 4-digit verification code is sent to your email. Note the user_id -- you will need it in the next step.
You can also pass an optional referral_code field if you were invited by another user.
Step 2: Verify Your Email​
Enter the verification code from the email you received.
curl -X POST https://intotes.com/api/v1/auth/verify-email \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{
"user_id": 42,
"verification_code": "1234"
}'
Response (200):
{
"success": true,
"message": "Email verified successfully",
"user": {
"id": 42,
"email": "you@example.com",
"balance": 0,
"email_verified": true
}
}
This response also sets two HTTP-only cookies: access_token and refresh_token. The -c cookies.txt flag saves them to a file so subsequent requests can use them automatically with -b cookies.txt.
Step 3: Get Your Profile​
Verify that authentication is working by fetching your profile.
curl https://intotes.com/api/v1/auth/me \
-b cookies.txt
Response (200):
{
"id": 42,
"email": "you@example.com",
"name": "User42",
"balance": 0,
"bonus_balance": 0,
"email_verified": true,
"language": "en",
"theme": "s"
}
Step 4: Browse Events​
Fetch the events feed to see what is available to trade on. This endpoint does not require authentication.
curl https://intotes.com/api/v1/events/feed
Response (200):
{
"events": [
{
"event": {
"id": 1,
"title": "Will BTC reach $100k by end of 2026?",
"status": "active",
"image_url": "https://..."
},
"main_pool": {
"id": 10,
"event_id": 1,
"title": "Main",
"finish_at": "2026-12-31T23:59:59Z"
},
"markets": [
{
"id": 100,
"pool_id": 10,
"title": "Yes",
"yes_probability": 6500,
"volume": 5000000
}
],
"total_volume": 5000000
}
],
"next_cursor": "eyJpZCI6...",
"has_more": true
}
Note the market_id (e.g., 100) -- you will use it to place a trade. Probabilities are in the 0-10000 range, so 6500 means 65.00%.
Step 5: Place a Trade via LMSR​
Buy YES shares on a market using the LMSR automated market maker. This example spends 1000 cents ($10.00) on YES shares in market 100.
curl -X POST https://intotes.com/api/v1/lmsr/trade \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"market_id": 100,
"side": "buy_yes",
"amount_type": "spend",
"amount": 1000
}'
Parameters:
| Field | Type | Description |
|---|---|---|
market_id | integer | The market to trade in. |
side | string | One of: buy_yes, sell_yes, buy_no, sell_no. |
amount_type | string | spend (how many cents to spend) or shares (number of shares). |
amount | integer | Amount in cents. Must be positive. |
You can also set "use_bonus": true to pay with your bonus balance instead.
Response (200):
{
"trade_id": 501,
"market_id": 100,
"side": "buy_yes",
"shares": 1450,
"cost": 1000,
"avg_price": 6896,
"new_yes_probability": 6700
}
You spent 1000 cents and received 1450 shares of YES. The market probability moved from 65.00% to 67.00%.
Before trading, you can preview the cost without executing by calling:
curl "https://intotes.com/api/v1/lmsr/preview?market_id=100&side=buy_yes&amount_type=spend&amount=1000" \
-b cookies.txt
Step 6: Check Your Positions​
View all your open positions across all markets.
curl https://intotes.com/api/v1/market/positions/my \
-b cookies.txt
Response (200):
[
{
"market_id": 100,
"market_title": "Yes",
"pool_id": 10,
"event_id": 1,
"event_title": "Will BTC reach $100k by end of 2026?",
"side": "long",
"shares": 1450,
"avg_price": 6896,
"current_price": 6700,
"unrealized_pnl": -284
}
]
A long position means you hold YES tokens. A short position means you hold NO tokens.
What Next?​
- Read Key Concepts to understand the full market structure: events, pools, markets, and settlement.
- Explore the orderbook endpoints to place limit orders at specific prices.
- Set up a WebSocket connection to
/api/v1/ws/tradesfor real-time trade updates.