{"ok":true,"panel":"https://allpenalexch99.co","version":"1.4.1","poll_every_sec":1,"study":"DIMOND SPORTS API (https://dimond-api.xyz/docs/sports/) — SOURCE OF TRUTH for auto-settle.\n\nAuth: every call needs query `key=YOUR_API_KEY`.\n\nCore endpoints (GET):\n1) /highlighthomePrivate?etid={etid}&key=...\n   - In-play / upcoming list. etid: 4=cricket, 1=football, 2=tennis.\n   - Each row has gmid (match id), mid, ename, mname, gtype, section[], status, bm, f, f1.\n2) /gamedataPrivate?gmid={gmid}&etid={etid}&key=...\n   - FULL live markets for ONE match id (gmid): MATCH_ODDS, Bookmaker, Bookmaker 2,\n     Normal/session fancy, Over By Over, Ball By Ball, fancy1, meter, oddeven, lines.\n   - Poll ~1–3s while watching. Use market status + section.gstatus (OPEN/SUSPENDED/SETTLED).\n3) /gamedetailPrivate?gmid={gmid}&etid={etid}&key=...\n   - Match meta / detail for that gmid.\n4) /scorecard?etid={etid}&gmid={gmid}&key=...\n   - Live scorecard link/details (not enough alone for fancy settle).\n5) /get_result?sid={etid}&gmid={gmid}&key=...\n   - SETTLED results for that match. Returns markets[] with:\n     gmid, gtype (FANCY/ODDEVEN/METER/FANCY1/MATCH/BOOKMAKER...),\n     mname (NORMAL/BALL BY BALL/OVER BY OVER/ODDEVEN/METER/...),\n     marketName (session name e.g. 'MATCH 1ST OVER RUN'),\n     status=SETTLE, winnerId (often session_runs / line result), winnerName, natName.\n   - AI MUST use this for declared fancy/session/oddeven/meter/bookmaker/match results.\n\nMatch identity:\n- Always key results by gmid (Game Match ID) + etid/sid (sport).\n- mid = market id inside a match; sid on sections = selection id.\n- Never invent results; only grade from gamedata status or get_result winnerId/winnerName.\n\nMarket families (from gamedata mname / gtype):\n1) MATCH_ODDS gtype=match — FT home/away. Settle only when CLOSED/SETTLED or get_result match winner. Live => pending.\n2) Bookmaker / Bookmaker 2 gtype=match1 — same as match winner sections. Settle when declared / get_result.\n3) Normal gtype=fancy — session fancy (e.g. '40 over run ENG'). Line = urate / back1 number (runs line), NOT decimal price.\n   Settle when section SETTLED or get_result row for that marketName: session_runs = winnerId.\n   Yes/back/over won if runs>line; No/lay/under won if runs<line; equal => push.\n4) oddeven — parity of session_runs when declared. BACK odd wins if runs odd; LAY odd LOSES if runs odd (LAY flips).\n5) meter — wicket/player meter vs line; same OU rules when declared.\n6) fancy1 — toss / who scores more / special yes-no; settle when declared; AI if ambiguous.\n7) Over By Over / Ball By Ball — session-style fancy; settle per marketName via get_result winnerId.\n8) Football OVER_UNDER_* — totals after FT.\n9) Tennis Game/Set Winner — after that game/set completed.\n\nStatus words:\n- OPEN / Ball Running / SUSPENDED / ACTIVE => pending (do not wallet settle)\n- SETTLED / SETTLE / CLOSED / declared / session_ended / fancy_ended => settle if result fields present\n\nCRITICAL for AI:\n- Give / use FULL account of match: gmid + ALL related markets (MATCH_ODDS, Bookmaker, session fancy, oddeven, meter).\n- Never settle fancy from full-match FT score alone.\n- Prefer get_result.winnerId as session_runs when status=SETTLE.\n- Always honor bet.side / otype / btype = lay (flips won/lost).\n- Wallet apply only if decision in won|lost|void|push (settled:true).","etid":{"1":"football","2":"tennis","4":"cricket"},"mnames":["MATCH_ODDS","Bookmaker","Normal","oddeven","meter","fancy1","khado","cricketcasino","OVER_UNDER_*","Game Winner","Set Winner"]}