Mr. Doge

Welcome

The Mr. Doge SDK gives you live odds, AI picks, and market data across every major sport. One typed client, two transports, every framework.

The Mr. Doge SDK powers the Mr. Doge app — live odds across every major sport, AI picks with reasoning attached, and market data you can build on. These docs walk you through installation, authentication, and every method the SDK exposes.

What's in the box

Live matches & odds

Hundreds of leagues across soccer, basketball, tennis, volleyball, baseball, hockey, and football. Real-time deltas over WebSocket.

AI picks with reasoning

Every pick exposes confidence, edge percentage, and the model's rationale.

Dual transport

WebSocket for live subscriptions, HTTP for one-shot reads. Same typed client picks the right path.

Typed end to end

Schemas validate every request server-side and ship as TypeScript types to your client. Autocomplete from the first call to the last.

Four packages, one surface

30-second taste

Pick your runtime — Node, Next.js, or any edge runtime. Same SDK, same data.

import { MrDoge } from "@mrdoge/node";

const mrdoge = new MrDoge({
  apiKey: process.env.MRDOGE_API_KEY!,
});

// stream live soccer matches
const sub = await mrdoge.matches.subscribeLive({
  sports: ["soccer"],
});

sub.on("match.upd", (match) => {
  console.log(match.homeTeam.name, match.stats?.homeScore);
});

// or pull today's AI picks
const { data: picks } = await mrdoge.ai.picks.list({ limit: 10 });
app/api/picks/route.ts
import { MrDoge } from "@mrdoge/node";

const mrdoge = new MrDoge({
  apiKey: process.env.MRDOGE_API_KEY!,
});

export async function GET() {
  const { data } = await mrdoge.ai.picks.list({
    date: "2026-05-18",
    limit: 10,
  });

  return Response.json(data);
}
// Cloudflare Workers / Vercel Edge / Lambda
import { createHttpClient } from "@mrdoge/http";

export default {
  async fetch(req, env) {
    const mrdoge = createHttpClient({
      apiKey: env.MRDOGE_API_KEY,
    });

    const matches = await mrdoge.call("matches.trending", { limit: 5 });
    return Response.json(matches);
  },
};

Where to go next

On this page

Welcome