获取 API 密钥
1
注册账号

用邮箱免费创建账号。 → 立即注册

2
USDT 订阅付款

通过 TRC20 网络发送 USDT 并提交交易哈希。 → 订阅页面

3
查看 API 密钥

付款确认后,在控制台查看您的 API 密钥(BET14-XXXX...)。

4
将 iframe 嵌入网站

参考以下接入方式,将游戏添加到您的投注网站。

提供的游戏
游戏名 周期 slug (embed URL)
🐉 Dragon Tiger 30秒 dragontiger
🃏 Baccarat 30秒 baccarat
🔮 Big Six Ball 1分钟 bigsixball
接入方式 — 服务端变量注入 推荐

将 API 密钥存储在服务器环境变量(.env)中,渲染页面时注入到 iframe src。密钥不会出现在源代码或 Git 中,游戏直接从服务器加载,无资源问题。渲染后的 HTML 中密钥可见,但这是行业标准嵌入方式。

Embed URL
https://bet14mini.com/embed/{slug}/?key={API_KEY}
.env / server config
BET14_API_KEY=YOUR_API_KEY
game.php
<?php $apiKey = getenv('BET14_API_KEY'); $slug = 'dragontiger'; // or dynamic ?> <iframe src="https://bet14mini.com/embed/<?= $slug ?>/?key=<?= htmlspecialchars($apiKey) ?>" allowfullscreen ></iframe>
.env + Express (EJS/Pug template)
# .env BET14_API_KEY=YOUR_API_KEY // routes/game.js router.get('/game/:slug', (req, res) => { const allowed = ['dragontiger', 'baccarat', 'bigsixball']; const slug = allowed.includes(req.params.slug) ? req.params.slug : 'dragontiger'; res.render('game', { embedUrl: `https://bet14mini.com/embed/${slug}/?key=${process.env.BET14_API_KEY}` }); }); // views/game.ejs <iframe src="<%- embedUrl %>" style="width:100%;aspect-ratio:830/553;border:none" allowfullscreen sandbox="allow-scripts allow-same-origin allow-popups"></iframe>
.env.local + Next.js Server Component
# .env.local BET14_API_KEY=YOUR_API_KEY // app/game/[slug]/page.jsx (Server Component) const ALLOWED = ['dragontiger', 'baccarat', 'bigsixball']; export default function GamePage({ params }) { const slug = ALLOWED.includes(params.slug) ? params.slug : 'dragontiger'; const apiKey = process.env.BET14_API_KEY; const src = `https://bet14mini.com/embed/${slug}/?key=${apiKey}`; return ( <iframe src={src} style={{ width: '100%', aspectRatio: '830/553', border: 'none' }} allowFullScreen sandbox="allow-scripts allow-same-origin allow-popups" /> ); }
.env + Nuxt 3 (SSR)
# .env BET14_API_KEY=YOUR_API_KEY // nuxt.config.ts export default defineNuxtConfig({ runtimeConfig: { bet14ApiKey: process.env.BET14_API_KEY, // server-only } }); // pages/game/[slug].vue <template> <iframe :src="embedUrl" style="width:100%;aspect-ratio:830/553;border:none" allowfullscreen sandbox="allow-scripts allow-same-origin allow-popups" /> </template> <script setup> const route = useRoute(); const config = useRuntimeConfig(); const slug = ['dragontiger','baccarat','bigsixball'].includes(route.params.slug) ? route.params.slug : 'dragontiger'; const embedUrl = `https://bet14mini.com/embed/${slug}/?key=${config.bet14ApiKey}`; </script>
appsettings.json + Razor Page
// appsettings.json (or env var Bet14ApiKey) { "Bet14ApiKey": "YOUR_API_KEY" } // Pages/Game.cshtml.cs public class GameModel : PageModel { public string EmbedUrl { get; private set; } = ""; private readonly IConfiguration _cfg; public GameModel(IConfiguration cfg) => _cfg = cfg; public IActionResult OnGet(string slug = "dragontiger") { var allowed = new[] { "dragontiger", "baccarat", "bigsixball" }; if (!allowed.Contains(slug)) slug = "dragontiger"; EmbedUrl = $"https://bet14mini.com/embed/{slug}/?key={_cfg["Bet14ApiKey"]}"; return Page(); } } // Pages/Game.cshtml <iframe src="@Model.EmbedUrl" style="width:100%;aspect-ratio:830/553;border:none" allowfullscreen sandbox="allow-scripts allow-same-origin allow-popups"></iframe>
💡 推荐比例:宽 830 / 高 553 px — 响应式:width:100%; aspect-ratio:830/553; border:none;
🔒 密钥只存储在 .env 中,不要提交到 Git。(在 .gitignore 中添加 .env
游戏服务器实时 API

每个游戏服务器提供可每 300ms 轮询的状态端点。投注网站可接收此数据,在自有 UI 中展示当前轮次、阶段和开牌结果,或用于赔付计算。

端点
https://bet14mini.com/embed/{slug}/api/current ← 当前轮次状态https://bet14mini.com/embed/{slug}/api/results?limit=N ← 最近 N 条结果记录

无需认证头。iframe 加载时已完成密钥验证,之后可自由调用游戏服务器 API。

公共响应字段
字段类型说明
roundinteger全局累计轮次号
daily_roundinteger当日轮次号(用于显示)
datestring服务器日期(YYYY-MM-DD)
phasestring当前阶段 — 见下表
remainMsinteger当前阶段剩余时间(毫秒),仅 betting 阶段有效
phase 值及循环
phase含义新增字段
betting接受投注中(倒计时)remainMs 有效
revealing开牌/结果公布中牌/分数字段出现
result结果确定 — 最终胜负result 字段确定
waiting等待下一轮
GET /embed/dragontiger/api/current
{ "round": 13463, "daily_round": 2280, "date": "2026-05-17", "phase": "result", "remainMs": 0, "dragon": { "suit": "S", "value": "4" }, "tiger": { "suit": "C", "value": "2" }, "result": "dragon" }
字段类型说明
dragon.suitstring龙牌花色:S(黑桃) D(方块) H(红心) C(梅花)
dragon.valuestring龙牌点数:2–10, J, Q, K, A
tiger.suit / tiger.valuestring虎牌(结构相同)
resultstring"dragon" | "tiger" | "tie"

dragon·tiger 字段从 revealing 阶段开始出现,betting 阶段为 null。

GET /embed/baccarat/api/current
{ "round": 8821, "daily_round": 1104, "date": "2026-05-17", "phase": "result", "remainMs": 0, "player_cards": [{"suit":"H","value":"5"}, {"suit":"D","value":"3"}], "banker_cards": [{"suit":"C","value":"K"}, {"suit":"S","value":"7"}], "player_total": 8, "banker_total": 7, "natural": true, "result": "player" }
字段类型说明
player_cardsarray闲家牌(2~3张,每张 {suit, value})
banker_cardsarray庄家牌(2~3张)
player_totalinteger闲家合计(0~9)
banker_totalinteger庄家合计(0~9)
naturalboolean天生(8或9)标志
resultstring"player" | "banker" | "tie"

牌字段从 revealing 阶段开始出现。player_totalnull 表示尚未公布。

GET /embed/bigsixball/api/current
{ "round": 5201, "daily_round": 420, "date": "2026-05-17", "phase": "result", "remainMs": 0, "result_map": { "manu": 1, "mancity": 2, "liverpool": 3, "chelsea": 4, "arsenal": 5, "tottenham": 6 } }
字段类型说明
result_mapobject队伍名 → 名次(1=第一名),在 result 阶段确定
team_orderarray发射顺序索引数组(动画用,通常不需要)

Teams: manu / mancity / liverpool / chelsea / arsenal / tottenham
第一名队伍 = result_map 中值为 1 的键。

GET /embed/{slug}/api/results?limit=N — 最近结果记录
Dragon Tiger
[ { "round":13463, "daily_round":2280, "date":"2026-05-17", "dragon":{"suit":"S","value":"4"}, "tiger":{"suit":"C","value":"2"}, "result":"dragon" }, { "round":13462, "daily_round":2279, "date":"2026-05-17", "dragon":{"suit":"H","value":"A"}, "tiger":{"suit":"D","value":"9"}, "result":"tiger" }, ... ]

最新轮次排在数组前面,最多返回 limit 条。

💡 iframe postMessage 事件:游戏 iframe 在每次阶段变化时向父页面发送消息。
window.addEventListener('message', (e) => { // e.data.type = 'dragontiger_phase' | 'baccarat_phase' | 'bigsix_phase' const { type, round, daily_round, phase, remainMs } = e.data; if (type === 'dragontiger_phase' && phase === 'result') { // fetch /embed/dragontiger/api/current for card data } });
仅在阶段变化时触发,牌数据需在收到此事件后额外调用 /api/current 获取。
错误代码
HTTP含义原因及解决方法
401 Unauthorized API 密钥缺失或无效 — 请重新检查密钥
401 Expired 订阅已过期 — 请续订 — 续订
404 Not Found 游戏不存在 — 请确认有效 slug
503 Service Unavailable 游戏服务器维护中 — 请稍后重试
注意事项