View the Public Web Profile
When you share a competition, team, player or organization, the recipient sees a read-only view of it — they can look, but not edit. 4league serves that read-only view two different ways depending on whether the person has the app. This page explains both, and is the single source of truth for every link form 4league uses — the other sharing guides point here rather than repeat the table.
A common misconception is that the public URLs just bounce visitors to app.html. They don't. The clean URLs (/competition/<id>/matches, etc.) are served by a dedicated renderer that returns a real, indexable HTML page with the entity's key facts and a rich link preview. The app.html redirect is a separate mechanism, covered further down.
Two Read-Only Views
The same profile is viewed read-only in two places. Which one a person lands on depends on whether they have 4league installed.
1. In the app (read-only profile screen)
Inside 4league, opening someone else's profile — by following a deep link, or via search / explore — shows a dedicated read-only screen. It renders the profile header (banner, logo, name) followed by an info panel of the profile's key facts, with Follow and Details buttons instead of any owner/edit controls.
It covers four profile types — competition, team, player and organization — and the info panel adapts to each:
| Profile | What the read-only info panel shows |
|---|---|
| Competition | Real-or-virtual type, organizer, dates (duration), category, pitch location, competition format, number of teams/groups, age & gender limits, match type (e.g. 5×5), prize & registration tax, kit colors, and recent match history. |
| Team | Team manager, parent organization, awards/trophies, squad size, and the team's matches. |
| Player | Position, team, plus the in-app player detail (skills/attributes, achievements & experience are visible here — see the note below). |
| Organization | Type, parent organization, contact (email/phone), staff/members by role, and lists of its affiliated organizations, competitions and teams. |
2. On the web (public page, no app needed)
Someone without the app who opens a clean profile URL gets a lightweight, text-only public web page. These pages are produced by 4league's public-web (SEO) renderer — a small service that, for each request, fetches the entity's public data and returns a minimal HTML document carrying the entity's name, a short summary, full Open Graph and Twitter Card meta for rich link previews, structured data, and a "View full profile on the 4league app" download prompt.
They are deliberately minimal — enough for search engines and chat link-previews to index, and enough for a visitor to recognise what they're looking at and download the app for the rest.
The Full URL Reference
This is the authoritative list of every link form 4league uses for a profile. Other guides link here instead of repeating it.
Clean public URLs (canonical)
These are the tidy, indexable addresses served by the public-web renderer. They are also Universal Links (iOS) / App Links (Android): on a device with 4league installed they open the matching in-app screen; without it, they show the public web page above.
| Profile | Canonical URL |
|---|---|
| Competition | https://4league.app/competition/<id>/matches |
| Team | https://4league.app/team/<id> |
| Player | https://4league.app/player/<id> |
| Organization | https://4league.app/organization/<id> |
The <id> is the profile's 24-character identifier. The renderer also accepts extra path segments after the id (e.g. a different competition tab), but the URLs above are the canonical forms it points its own <link rel="canonical"> at.
Legacy app.html redirect link
This is the type-tagged link the in-app Share button generates. It points at a small OS-detection page that routes the visitor onward — into the installed app, to the right app store, or to the web app at https://web.4league.app.
| Form | p code | Routes to |
|---|---|---|
https://4league.app/app.html?p=c&i=<id> | c | competition |
https://4league.app/app.html?p=t&i=<id> | t | team |
https://4league.app/app.html?p=p&i=<id> | p | player |
https://4league.app/app.html?p=o&i=<id> | o | organization |
https://4league.app/app.html?p=g&i=<id> | g | group |
The i parameter carries the profile id. You don't build these by hand; the Share button assembles them from the app's configured origin.
Player-card link form
Player registration cards and the player QR-code share use a slightly different app.html form — a page path instead of p/i:
| Player card / QR | https://4league.app/app.html?page=player/<id> |
This is the value encoded in a player's QR code, so scanning a printed registration card opens that player's profile.
What Each Public Page Shows
The public web pages are intentionally text-light. Here is exactly what each renders:
| Page | Content shown |
|---|---|
| Competition | Name, a standings summary (each listed team with its points), competition type (League / Cup / Groups), location, season, and team & match counts. |
| Team | Name, season record (matches played and won), and the current competition it's playing in. |
| Player | Name and playing position. |
| Organization | Name, organization type (Federation / Association / Club / Community), description, and its list of competitions. |
The public web pages are summaries. The rich stuff — a player's full XP, skills and attributes, achievements, detailed statistics, full standings tables and match-by-match history — lives in the app's read-only view, not on the public page. That's by design: the public page exists to be indexed and previewed, then hand the visitor over to the app for everything else.
Link Previews & Share Images
Every public page ships full Open Graph and Twitter Card tags, so pasting a link into a chat, social post or message renders a card with a title, description and image rather than a bare URL.
- The preview image is set automatically from the profile's own logo / profile image, falling back to a default 4league image when the profile has none. It is not separately configurable per share — you change it by changing the profile's image.
- The title and description are generated from the same facts shown on the page (name, type, season, counts, etc.).
- The card style varies by entity — most use a large image card; smaller entities (e.g. a single team or player) use a compact card.
See Share a Competition or Team Link and Share a Player's Profile for how the in-app Share button works and which link it produces. For custom shareable graphics (and how those interact with link previews), see Generate a Matchday Poster.