Dimond Settle v1.4.1

Open Dimond API docs →

Panel: allpenalexch99.co · WS 1s · LAY oddeven fix

WS: wss://dimond-api.xyz/sports/ws

/swagger · /sports/panel/study

DIMOND SPORTS API (https://dimond-api.xyz/docs/sports/) — SOURCE OF TRUTH for auto-settle.

Auth: every call needs query `key=YOUR_API_KEY`.

Core endpoints (GET):
1) /highlighthomePrivate?etid={etid}&key=...
   - In-play / upcoming list. etid: 4=cricket, 1=football, 2=tennis.
   - Each row has gmid (match id), mid, ename, mname, gtype, section[], status, bm, f, f1.
2) /gamedataPrivate?gmid={gmid}&etid={etid}&key=...
   - FULL live markets for ONE match id (gmid): MATCH_ODDS, Bookmaker, Bookmaker 2,
     Normal/session fancy, Over By Over, Ball By Ball, fancy1, meter, oddeven, lines.
   - Poll ~1–3s while watching. Use market status + section.gstatus (OPEN/SUSPENDED/SETTLED).
3) /gamedetailPrivate?gmid={gmid}&etid={etid}&key=...
   - Match meta / detail for that gmid.
4) /scorecard?etid={etid}&gmid={gmid}&key=...
   - Live scorecard link/details (not enough alone for fancy settle).
5) /get_result?sid={etid}&gmid={gmid}&key=...
   - SETTLED results for that match. Returns markets[] with:
     gmid, gtype (FANCY/ODDEVEN/METER/FANCY1/MATCH/BOOKMAKER...),
     mname (NORMAL/BALL BY BALL/OVER BY OVER/ODDEVEN/METER/...),
     marketName (session name e.g. 'MATCH 1ST OVER RUN'),
     status=SETTLE, winnerId (often session_runs / line result), winnerName, natName.
   - AI MUST use this for declared fancy/session/oddeven/meter/bookmaker/match results.

Match identity:
- Always key results by gmid (Game Match ID) + etid/sid (sport).
- mid = market id inside a match; sid on sections = selection id.
- Never invent results; only grade from gamedata status or get_result winnerId/winnerName.

Market families (from gamedata mname / gtype):
1) MATCH_ODDS gtype=match — FT home/away. Settle only when CLOSED/SETTLED or get_result match winner. Live => pending.
2) Bookmaker / Bookmaker 2 gtype=match1 — same as match winner sections. Settle when declared / get_result.
3) Normal gtype=fancy — session fancy (e.g. '40 over run ENG'). Line = urate / back1 number (runs line), NOT decimal price.
   Settle when section SETTLED or get_result row for that marketName: session_runs = winnerId.
   Yes/back/over won if runs>line; No/lay/under won if runs push.
4) oddeven — parity of session_runs when declared. BACK odd wins if runs odd; LAY odd LOSES if runs odd (LAY flips).
5) meter — wicket/player meter vs line; same OU rules when declared.
6) fancy1 — toss / who scores more / special yes-no; settle when declared; AI if ambiguous.
7) Over By Over / Ball By Ball — session-style fancy; settle per marketName via get_result winnerId.
8) Football OVER_UNDER_* — totals after FT.
9) Tennis Game/Set Winner — after that game/set completed.

Status words:
- OPEN / Ball Running / SUSPENDED / ACTIVE => pending (do not wallet settle)
- SETTLED / SETTLE / CLOSED / declared / session_ended / fancy_ended => settle if result fields present

CRITICAL for AI:
- Give / use FULL account of match: gmid + ALL related markets (MATCH_ODDS, Bookmaker, session fancy, oddeven, meter).
- Never settle fancy from full-match FT score alone.
- Prefer get_result.winnerId as session_runs when status=SETTLE.
- Always honor bet.side / otype / btype = lay (flips won/lost).
- Wallet apply only if decision in won|lost|void|push (settled:true).