Documentation Index
Fetch the complete documentation index at: https://docs.fieldfunded.com/llms.txt
Use this file to discover all available pages before exploring further.
1. Get Your API Key
- RapidAPI (recommended)
- Direct API Key
- Visit FieldFunded on RapidAPI
- Subscribe to a plan (Free tier = 10,000 req/mo)
- Copy your
X-RapidAPI-Keyfrom the dashboard
| Mode | Base URL |
|---|---|
| RapidAPI | https://fieldfunded-sports-api.p.rapidapi.com/v1 |
| Direct | https://api.fieldfunded.com/v1 |
Header names are case-insensitive (x-rapidapi-key works), but we recommend the canonical casing above.
2. Your First Request
Response Format
All responses are JSON. Successful responses return the data directly:3. Official TypeScript SDK
The fastest way to integrate. Handles authentication, retries, and provides full type safety for all 1,000+ markets.Full SDK Documentation →
25 typed methods, error classes, configuration options, and all usage examples.
4. Common Patterns
Poll Live Scores (lightweight)
Search by Team Name
Batch Fetch Multiple Events
Auto-Settle Bets
5. Integration Flow
Simple Integration
White-Label Sportsbook
6. How to Integrate Bets — Complete Flow
This is the most important section for sportsbook integrators.Step 1 — Show odds to your user
Your frontend callsGET /v1/events/{id} and displays markets + odds.
Step 2 — User places a bet
When your user clicks “Place Bet”, save to your database:| Field | Source | Priority |
|---|---|---|
event_id | From the event | Required |
market_id | From markets array | Primary — 100% accuracy |
selection_id | From outcomes array | Primary — 100% accuracy |
market | e.g. "Match Winner" | Secondary — display only |
outcome | e.g. "Home" | Secondary — display only |
odds | Decimal odds at placement time | Required |
stake | User’s wager amount | Your business logic |
Step 3 — Check the result
After the game ends, callPOST /v1/bets/check with the data you stored:
Response
Step 4 — Credit the user
| Result | Action | Payout |
|---|---|---|
won | Credit payout to user’s balance | stake × odds |
lost | No action (stake already deducted) | 0 |
refund | Return original stake to user | stake × 1.0 |
pending | Game not finished yet — check again later | — |
POST /v1/bets/check-parlay with stake and legs[]. The API calculates combined_odds and payout automatically.
Currency-agnostic: The
stake and payout fields work with any currency. Send a numeric amount in whatever unit your platform uses (USD, EUR, BTC, points, etc.). No currency conversion is applied.Cross-Sport Market ID Consistency
market_id values are consistent across all fixtures within the same sport:
| Market | market_id | Selections | Consistency |
|---|---|---|---|
| 1X2 (Match Winner) | 36 | Home / Draw / Away | Fixed across all soccer |
| Total (Over/Under) | 24 | Over 0.5, 1.5, 2.5… | Fixed; specifier varies |
| Asian Handicap | 128 | Home (-0.5), Away (+0.5)… | Fixed; specifier varies |
| Both Teams to Score | 121 | Yes / No | Fixed across all soccer |
| Correct Score | 147 | 0:0, 1:0, 2:1… | Fixed across all soccer |
Example: market_id: 36 maps to 1X2 in every soccer match — whether it’s Hamburger SV vs. FC Union Berlin (2. Bundesliga) or Corinthians vs. CA Peñarol (Copa Sudamericana).
7. Settlement Feed Notes
- An event appears in
/v1/settlementsas soon as the first market resolves, not only when all markets are done resolved_markets_countgrows over time;pending_markets_countreaches0when all markets are finalized- Core markets settle within seconds; niche markets resolve gradually over minutes
- Coverage includes standard markets, player-prop markets, and dynamic live markets
Payload Modes
/v1/bets/check supports:
- Batch:
{ "selections": [...] } - Single:
{ "selection": {...} } - Shortcut:
{ "event_id": "...", "market": "...", "outcome": "...", "odds": 1.85 }
/v1/bets/check-parlay supports:
- Single:
{ "legs": [...], "stake": 10 } - Batch:
{ "parlays": [{ "parlay_id": "p1", "legs": [...], "stake": 10 }] }
Recommended Polling Pattern
8. Error Handling
| Status | Error Code | Meaning | Action |
|---|---|---|---|
| 400 | bad_request | Invalid parameters | Fix your request |
| 401 | unauthorized | Missing/invalid API key | Check your key |
| 404 | not_found | Event doesn’t exist | Use /v1/events to find valid IDs |
| 429 | rate_limited | Too many requests | Wait Retry-After seconds |
| 503 | service_unavailable | Backend temporarily down | Wait Retry-After seconds |
| Component | Affects | Typical Recovery |
|---|---|---|
redis | Live odds, scores, event data | 10-60 seconds |
supabase | Settlements, historical data | 30-120 seconds |
9. Odds Formats
All endpoints that return odds support?odds_format=:
/events, /live, /featured, /search, /events/{id}, /events/{id}/odds, /events/batch, /outrights/{id}.
10. Rate Limit Headers
Every response includes:| Header | Description |
|---|---|
X-RateLimit-Limit | Your monthly quota |
X-RateLimit-Remaining | Requests remaining |
X-RateLimit-Reset | Unix timestamp when quota resets |
X-RateLimit-Warning | ⚠️ Appears at 50%, 80%, 95% usage |
Monitoring endpoints (
/ping, /health, /status) do not count against your monthly quota. They have their own fixed rate limits: 2 req/s and 120 req/h, equal for all plans.Next Steps
Browse Sports
See all 30+ available sports
Live Events
Get real-time live data
Settlement
Automatic bet settlement
SDK Reference
Full TypeScript SDK docs
