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.
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.