NFL Kickoff Feed

Every regular-season game — week, date, kickoff, away team, home team — pulled from three independent sources, reconciled, and refreshed every 30 minutes so flex moves and delays show up here first.

Loading…

Week

Recent schedule changes

No kickoff changes recorded yet.

    Sources

    Each run fetches every source, votes on the kickoff for each game, and records disagreement. Two sources agreeing beats one; all three agreeing is marked confirmed.

    Use this data

    Plain GET requests, no sign-up, CORS enabled. Responses are cached at the edge for two minutes. Times default to Eastern; pass tz= with any IANA zone to convert.

    EndpointReturns
    GET /api/schedule.csvCSV: Week #,Date,Time,Away Team,Home Team — all 18 weeks
    GET /api/schedule.csv?week=currentSame, only the current week. week=1…18 also works
    GET /api/schedule.jsonJSON with kickoff in UTC, status, confidence, broadcast and per-source values
    GET /api/scores.jsonLive scores for the current week: awayScore, homeScore, clockDisplay (Q3 4:12, Half, Final, F/OT), completed, winner. Refreshed every minute while games are on. week=all for the season
    GET /api/scores.csvSame as CSV, with team abbreviations
    GET /api/status.jsonLast update, next update, current week, source health, open issues
    GET /api/changes.jsonLog of every kickoff move the feed has seen this season

    Query parameters

    weekcurrent or 1–18. Omit for the whole season.
    tzIANA time zone for Date and Time, e.g. America/Chicago. Default America/New_York.
    timefmt24h (default, 20:15) or 12h (8:15 PM).
    columns=extendedCSV only: adds Kickoff (UTC), Time Zone, Status, Confidence, Broadcast, Neutral Site.
    tbd=skipLeave out games whose kickoff time is not set yet (otherwise Time is TBD).
    download=1CSV only: send as a file attachment.

    Format

    Week #,Date,Time,Away Team,Home Team
    2,2026/09/17,20:15,Detroit Lions,Buffalo Bills
    2,2026/09/20,13:00,Carolina Panthers,Atlanta Falcons

    Date is YYYY/MM/DD. Team names are always City Nickname ("Dallas Cowboys"), never abbreviations. Rows are ordered by week, then kickoff.

    Code

    
          

    Reading the confidence field

    confirmedEvery source that reports a kickoff time agrees.
    majorityTwo or more agree, at least one differs. The majority value is used.
    singleOnly one source has a time for this game yet (common for far-off weeks).
    conflictSources disagree with no majority. Highest-priority source (ESPN) wins and an alert goes out.
    tbdNo source has published a kickoff time. Date is still provided.

    Kickoff-sensitive apps (like locking picks once a game starts) should treat kickoffUtc from the JSON as the authority and use the CSV for display or import.

    Scores

    Scores come from ESPN and are checked every minute from 15 minutes before the first kickoff until the last game of the week is final. Before kickoff awayScore/homeScore are null and clockDisplay is empty; completed flips to true and winner is set (team name or tie) when a game ends. Poll once a minute on game days — responses are cached for 20 seconds.

    GET /api/scores.json?week=current
    
    { "week": 1, "away": "Dallas Cowboys", "home": "New York Giants",
      "awayAbbr": "DAL", "homeAbbr": "NYG", "status": "in_progress",
      "clockDisplay": "Q3 4:12", "period": 3, "clock": "4:12",
      "awayScore": 17, "homeScore": 14, "completed": false, "winner": null }