Structured Request API
Submit bet placement, odds check, training, and research requests as a stable JSON intent. SlipJet stores every request and every API call for user and admin audit trails.
Authentication
Create a token from the authenticated account API, then send it as a bearer token.
Authorization: Bearer sj_live_xxxxxx_SECRET
Create a token
POST https://slipjet.com/api/account/api-tokens
Authorization: Bearer YOUR_DESKTOP_LOGIN_JWT
Content-Type: application/json
{
"name": "Zapier production",
"scopes": ["requests:read", "requests:write"]
}
The full token is returned once. Store it immediately; after that only the prefix is visible.
Structure a request
POST https://slipjet.com/api/v1/requests/structure
Authorization: Bearer sj_live_xxxxxx_SECRET
Idempotency-Key: optional-client-id
Content-Type: application/json
{
"clientRequestId": "crm-12345",
"source": "zapier",
"prompt": "$25 SGM on Lakers v Celtics at Sportsbet: Lakers win, LeBron 25+ points",
"webhookUrl": "https://example.com/slipjet-webhook"
}
Response
{
"request": {
"id": 42,
"status": "structured",
"kind": "place_bet",
"structured": {
"version": "slipjet.intent.v1",
"requestType": "place_bet",
"sport": "basketball",
"league": "NBA",
"event": {
"name": "Lakers v Celtics",
"homeTeam": "Lakers",
"awayTeam": "Celtics",
"startsAt": null
},
"bookmaker": { "key": "sportsbet-au", "name": null },
"betType": "sgm",
"legs": [
{ "selection": "Lakers win", "market": "h2h", "team": null, "player": null, "line": null, "odds": null, "eventName": "Lakers v Celtics" },
{ "selection": "LeBron 25+ points", "market": "player_prop", "team": null, "player": null, "line": null, "odds": null, "eventName": "Lakers v Celtics" }
],
"stake": { "amount": 25, "currency": "AUD" },
"constraints": {
"minOdds": null,
"maxOdds": null,
"acceptOddsChange": null,
"maxStake": 25,
"eachWay": false
},
"estimatedOdds": null,
"confidence": 0.35,
"parseSource": "heuristic",
"warnings": ["Heuristic parser used; verify before execution."]
}
}
}
Supply JSON directly
External systems can skip prompt parsing and post the structured object directly. SlipJet will normalize and store it against the user.
{
"clientRequestId": "partner-998",
"request": {
"requestType": "odds_check",
"sport": "Basketball",
"league": "NBA",
"event": { "homeTeam": "Lakers", "awayTeam": "Celtics" },
"bookmaker": { "key": "sportsbet-au" },
"betType": "odds_check",
"legs": [{ "selection": "Lakers", "market": "h2h" }]
}
}
Audit endpoints
GET https://slipjet.com/api/v1/requests/:id
GET https://slipjet.com/api/account/api-calls?limit=100
GET https://slipjet.com/api/account/api-tokens
DELETE https://slipjet.com/api/account/api-tokens/:id
Every external API call is logged with user id, token id, route, status, duration, idempotency key, request id, IP, user agent, and a redacted request preview.