SGStreamGate
PUBLIC API · V1

API Documentation

Read the current sports schedule and StreamGate embed URLs. No API key or authentication header is required.

Public access

The API is read-only and public. You can call it server-side or directly from browser JavaScript. CORS is enabled for all origins.

curl "https://embedhd.click/api/v1/games.php"

GET /api/v1/games.php

Returns current games and the protected StreamGate embed gateway when a stream is available.

sportOptional: soccer, nfl, cfb, nba, wnba, mlb, nhl, ufc, f1.statusOptional: live, upcoming, finished.dateOptional UTC date in YYYY-MM-DD.idOptional ESPN/game ID to return one event.limit / offsetPagination. limit defaults to 50 and is capped at 100.
curl "https://embedhd.click/api/v1/games.php?sport=mlb&status=upcoming"

Example response

{
  "success": true,
  "data": [
    {
      "id": "401999999",
      "sport": "mlb",
      "league": "MLB",
      "status": "upcoming",
      "start_at": "2026-09-15T23:40:00+00:00",
      "home": {"name": "Tampa Bay Rays", "logo": "..."},
      "away": {"name": "Athletics", "logo": "..."},
      "streams": [
        {"language":"EN","label":"English","url":"https://embedhd.click/play/game-401999999.php","html":"<iframe ...></iframe>"},
        {"language":"FR","label":"French","url":"https://embedhd.click/play/game-401999999-v22.php","html":"<iframe ...></iframe>"}
      ],
      "embed": {
        "available": true,
        "url": "https://embedhd.click/play/game-401999999.php",
        "html": "<iframe ...></iframe>"
      }
    }
  ],
  "meta": {"total": 1, "limit": 50, "offset": 0}
}

Embedding

Use streams[] when a game has multiple languages. Each stream includes its language code, label, protected StreamGate URL and ready-to-copy iframe HTML. embed remains the primary/default stream for backward compatibility. The API never exposes the real transcoder/player URL.

<iframe
  src="https://embedhd.click/play/game-401999999.php"
  width="100%"
  height="100%"
  frameborder="0"
  allow="autoplay; fullscreen; picture-in-picture"
  allowfullscreen>
</iframe>

Cross-domain framing is controlled by EMBED_ALLOWED_DOMAINS. Use a comma-separated allowlist for selected partners, or * if you intentionally want the player embeddable everywhere.

Errors

400Invalid filter parameter.405Only GET and OPTIONS are accepted.502 / 503The remote transcoder feed is temporarily unavailable.