Competitions
External feeds
Show a governing body’s ladder and fixtures on your site from a published feed.
Show a competition your teams play in — but that someone else runs — on your own website. External feeds pull a published ladder and fixture list from your governing body (or any source that can serve a small JSON file) and display them read-only under your Competitions section, refreshed automatically.
External feeds are available on the Standard plan and above.
Who can use this
Admins, plus moderators granted the Manage competitions permission.
What's on the page
- One card per feed, showing its live/hidden state, when it last fetched, how many divisions it carries and any fetch problem.
- An edit form on each card, plus Fetch now and Remove buttons.
- An Add a feed form at the bottom.
Each live feed appears on your public site under Competitions → External competitions, with its own page at /competitions/external/<slug> showing the ladder and fixtures per division.
Step by step
- Ask your association for the ClubHelix feed URL for your competition — or publish one yourself; the format is a small JSON document (see the field reference below).
- Select Add a feed, give it the competition's name, a page address, and the feed URL.
- Save. The feed is fetched immediately, so you'll know straight away whether the URL serves valid data.
- Leave Show on the public site ticked and the competition appears on your Competitions page once data has loaded.
Field reference
- Competition name — the heading on the public page.
- Page address (slug) — lowercase letters, digits and hyphens; forms the public URL.
- Data source (attribution) — who runs the competition; shown as "Data from …" on the public page.
- Feed URL — a public
https://address serving the feed document. Private or local addresses are refused. - Refresh every — how often the feed re-fetches (30 minutes to weekly). Pick 30–60 minutes during the season if the feed carries live results.
The feed document is JSON shaped like:
{
"competition": {
"name": "State League Division 2",
"season": "2026",
"updated_at": "2026-07-20T09:00:00Z"
},
"divisions": [
{
"name": "Division 2",
"ladder": [
{
"team": "Harbourside",
"played": 10,
"wins": 8,
"draws": 1,
"losses": 1,
"points_for": 312,
"points_against": 208,
"points": 25
}
],
"fixtures": [
{
"round": 11,
"home": "Harbourside",
"away": "Seacliff",
"kickoff": "2026-07-26T04:30:00Z",
"venue": "Memorial Oval",
"status": "upcoming"
},
{
"round": 10,
"home": "Seacliff",
"away": "Harbourside",
"home_score": 41,
"away_score": 55,
"status": "complete"
}
]
}
]
}
Up to 12 divisions, 40 ladder rows and 300 fixtures per division; documents over 500 KB are refused. ladder and fixtures are each optional per division.
Tips & FAQ
- The feed failed but the page still shows data? A failed fetch never wipes the last good snapshot — the public page keeps showing it until a fetch succeeds again. The error appears only on this admin page.
- Results look behind the live competition. Feeds are snapshots — data appears as fresh as the source publishes it, at the refresh interval you chose. Fetch now forces an immediate update.
- This is display-only by design. External fixtures never appear in your own fixtures, ladders, match centre or statistics — those belong to competitions you run in ClubHelix.
- Can we feed our ClubHelix competition out to others? Not yet — feeds are import-only for now.