FIFA World Cup 2026 - Real-Time Events Notifications 🔥 Free avatar

FIFA World Cup 2026 - Real-Time Events Notifications 🔥 Free

Pricing

Pay per usage

Go to Apify Store
FIFA World Cup 2026 - Real-Time Events Notifications 🔥 Free

FIFA World Cup 2026 - Real-Time Events Notifications 🔥 Free

Free ⚽ World Cup 2026 live alerts straight to your webhook! Goals 🎯 (scorer + assist when available), cards, subs, kickoff/HT/FT & more!. One setup, real-time JSON POSTs all tournament - no polling, no F5. Paste your webhook URL & never miss a moment! 🏆

Pricing

Pay per usage

Rating

5.0

(1)

Developer

Azzouzana

Azzouzana

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

⚽ World Cup 2026 — Real-Time Events Notifications

Hook up your app, bot, or automation to live match pings for World Cup 2026. This setup actor is the one-time “where should we send stuff?” step.

What you get đź””

Once you’re in, your webhook gets instant POST notifications when the action hits the pitch:

  • âš˝ Goals (scorer + assist when available)
  • 🟨🟥 Cards (Red/Yellow)
  • 🔄 Substitutions
  • ⏱️ Match phases — kickoff, HT, 2nd half, FT, stoppage time

No polling. No F5 spam. Events land on your URL as they happen.

Live examples on Webhook.site

Real POSTs from the delivery service during live WC26 — open the inbox to inspect full JSONs: https://webhook.site/#!/view/01b18b65-2625-4129-88f1-3ca2cdfe0615

Each notification is a separate POST.

How it works (5 seconds setup)

  1. Run this actor with your webhook URL
  2. We save it next to your Apify account
  3. Our delivery service fires JSON at you during live matches

One setup run → notifications in the background all tournament long. Free. Easy.

Input

FieldDefaultDescription
webhookUrl—Your HTTPS endpoint for notifications (required)
subscribeGoalstrueGoals (scorer + assist when available)
subscribeYellowCardsfalseYellow cards
subscribeRedCardsfalseRed cards
subscribePeriodsfalseMatch phases — kickoff, HT, 2nd half, FT, stoppage time
subscribeSubstitutionsfalseSubstitutions
{
"webhookUrl": "https://your-server.com/notifications/wc26",
"subscribeGoals": true,
"subscribeYellowCards": false,
"subscribeRedCards": true,
"subscribePeriods": false,
"subscribeSubstitutions": true
}

Node, Python, Zapier, Make, n8n, Discord/Slack bridges — if it accepts POST, you’re good.

Output (dataset)

Successful run = one confirmation row:

{
"subscriptionId": "uuid",
"apifyUserId": "your-apify-user-id",
"webhookUrl": "https://your-server.com/notifications/wc26",
"eventTypes": {
"goals": true,
"yellowCards": false,
"redCards": true,
"periods": false,
"substitutions": true
},
"updatedAt": "2026-06-11T12:00:00.000Z"
}

Changing your URL

  • One slot per Apify user
  • Run again with a new URL → we swap it in
  • No duplicate subscriptions cluttering things

What a notification looks like 📬

During live World Cup matches, the delivery service POSTs JSON to your webhookUrl.

HTTP request

POST /notifications/wc26 HTTP/1.1
Host: your-server.com
Content-Type: application/json
{ ... body below ... }

You only receive event types you enabled at setup (subscribeGoals, subscribeYellowCards, etc.). If you left only Goals checked, you will not get cards or subs.

Below: JSON shapes from live delivery. For raw POSTs with timestamps, see the Webhook.site inbox.

Goal (with scorer + assist)

Live delivery — Canada vs Bosnia & Herzegovina (event 15186836), also visible on Webhook.site:

{
"ts": "2026-06-12T20:59:02.379Z",
"eventId": 15186836,
"subject": "event.15186836",
"channel": "incidents",
"incidentId": 351558696,
"homeTeam": "Canada",
"awayTeam": "Bosnia & Herzegovina",
"match": "Canada vs Bosnia & Herzegovina",
"summary": {
"kind": "goal",
"type": "goal",
"class": "regular",
"side": "away",
"team": "Bosnia & Herzegovina",
"minute": 21,
"player": "J. Lukić",
"assist": "S. Kolašinac",
"text": "Goal — J. Lukić 21' (assist S. Kolašinac) (0-1)",
"score": { "home": 0, "away": 1 }
},
"team": "Bosnia & Herzegovina",
"player": "J. Lukić",
"assist": "S. Kolašinac"
}

Earlier WC26 example — Mexico vs South Africa (event 15186710):

{
"ts": "2026-06-11T19:14:50.813Z",
"eventId": 15186710,
"subject": "event.15186710",
"channel": "score",
"homeTeam": "Mexico",
"awayTeam": "South Africa",
"match": "Mexico vs South Africa",
"summary": {
"kind": "goal",
"side": "home",
"team": "Mexico",
"score": "1-0",
"player": "J. Quiñones",
"assist": "E. Lira",
"minute": 9,
"text": "Goal — J. Quiñones 9' (assist E. Lira) (1-0)"
},
"patch": {
"homeScore.current": 1,
"awayScore.current": 0
},
"incidentId": 351455858,
"player": "J. Quiñones",
"assist": "E. Lira"
}

summary.text is ready to forward to Discord, Slack, or SMS as-is.

Red card

{
"ts": "2026-06-11T20:16:38.921Z",
"eventId": 15186710,
"subject": "event.15186710",
"channel": "incidents",
"incidentId": 125277734,
"homeTeam": "Mexico",
"awayTeam": "South Africa",
"match": "Mexico vs South Africa",
"summary": {
"kind": "red",
"type": "card",
"class": "red",
"side": "away",
"team": "South Africa",
"minute": 49,
"player": "S. Sithole",
"text": "red — S. Sithole 49'"
},
"team": "South Africa",
"player": "S. Sithole"
}

Yellow card

Live delivery — Canada vs Bosnia & Herzegovina:

{
"ts": "2026-06-12T19:46:42.144Z",
"eventId": 15186836,
"subject": "event.15186836",
"channel": "incidents",
"incidentId": 125279344,
"homeTeam": "Canada",
"awayTeam": "Bosnia & Herzegovina",
"match": "Canada vs Bosnia & Herzegovina",
"summary": {
"kind": "yellow",
"type": "card",
"class": "yellow",
"side": "away",
"team": "Bosnia & Herzegovina",
"minute": 45,
"player": "E. Demirović",
"text": "yellow — E. Demirović 45'"
},
"team": "Bosnia & Herzegovina",
"player": "E. Demirović"
}

Substitution

playerIn / playerOut appear only on substitutions. Live delivery — Canada vs Bosnia & Herzegovina:

{
"ts": "2026-06-12T20:22:12.251Z",
"eventId": 15186836,
"subject": "event.15186836",
"channel": "incidents",
"incidentId": 126397427,
"homeTeam": "Canada",
"awayTeam": "Bosnia & Herzegovina",
"match": "Canada vs Bosnia & Herzegovina",
"summary": {
"kind": "substitution",
"type": "substitution",
"class": "regular",
"side": "home",
"team": "Canada",
"minute": 61,
"text": "Sub — L. Millar → J. Shaffelburg 61'",
"playerIn": "J. Shaffelburg",
"playerOut": "L. Millar"
},
"team": "Canada",
"playerIn": "J. Shaffelburg",
"playerOut": "L. Millar"
}

Match phases (kickoff → HT → 2H → FT)

Enable subscribePeriods for whistle-to-whistle milestones. One POST per phase change. Same top-level shape as goals and cards: homeTeam, awayTeam, match, and a readable summary.text.

Momentsummary.phasesummary.text example
First halffirst_halfFirst half — Mexico vs South Africa (0-0)
HalftimehalftimeHalftime — Mexico vs South Africa (1-0)
Second halfsecond_halfSecond half — Mexico vs South Africa (1-0)

Full time — webhook JSON sample:

{
"ts": "2026-06-14T13:18:21.287Z",
"eventId": 16159825,
"subject": "sport.football",
"channel": "score",
"homeTeam": "Ăšvalno",
"awayTeam": "Sokol ZlatnĂ­ky",
"match": "Ăšvalno vs Sokol ZlatnĂ­ky",
"summary": {
"kind": "status",
"type": "period",
"phase": "full_time",
"text": "Full time — Úvalno vs Sokol Zlatníky (2-3)",
"score": { "home": 2, "away": 3 },
"status": { "code": 100, "description": "Ended" }
}
}

Halftime — webhook JSON sample:

{
"ts": "2026-06-11T19:55:00.676Z",
"eventId": 15186710,
"subject": "sport.football",
"channel": "score",
"homeTeam": "Mexico",
"awayTeam": "South Africa",
"match": "Mexico vs South Africa",
"summary": {
"kind": "status",
"type": "period",
"phase": "halftime",
"text": "Halftime — Mexico vs South Africa (1-0)",
"score": { "home": 1, "away": 0 },
"status": { "code": 31, "description": "Halftime" }
}
}

Stoppage time uses summary.kind: "stoppage_time" with minutes and period (1 or 2).

Other phases use the same shape: first_half, second_half, extra_time, penalties.

Field cheat sheet

FieldMeaning
tsWhen we sent the notification (ISO 8601)
eventIdMatch id — stable for the whole game
channelscore (live socket) or incidents (API enrich for cards/subs)
summary.kindgoal, yellow, red, substitution, status, stoppage_time, …
summary.typegoal, card, substitution, or period for match phases
summary.phasePeriod only: first_half, halftime, second_half, full_time, stoppage_time, …
summary.textHuman-readable one-liner
summary.score{ "home": 1, "away": 0 } on goals and periods
player / assistScorer and assist on goals; player on cards
playerIn / playerOutSubstitution only

You’re live when…

Delivery kicks in once your URL is on the notification service. Changed URL or event toggles? Picked up within about 5 minutes (no restart needed).

Want to try it? Plug in your webhook, open your logs, and wait for the beautiful chaos of live World Cup football. 🏆


📬 Contact & Support

Need a custom solution? Have a feature request, a collaboration beyond the FIFA 2026 World Cup or just want to chat? We'd love to hear from you!