# FootyChat Blog — Full Documentation
> Football news, match analysis, live scores, AI-powered predictions, and betting tips covering 50+ leagues worldwide.
## About
FootyChat is a real-time football platform with a companion blog that publishes:
- Daily match predictions with AI-generated win probabilities, betting tips, and confidence ratings
- Match previews and post-match analysis
- Transfer news and rumour tracking
- Live match commentary and updates
- Competition-specific coverage (Premier League, La Liga, Champions League, Brasileirão, Serie A, Bundesliga, Ligue 1, Primeira Liga, and more)
Content is updated daily. Match predictions are published before kickoff each day.
## Content Types
### Blog Posts (News & Analysis)
Standard WordPress posts covering football news. Each post may include:
- Match metadata (home/away teams, score, competition, venue, match date)
- Competition taxonomy for filtering by league
- Featured images optimized for social sharing (1200x630)
- Reading time estimates
- Related articles from the same category
URL pattern: `/{year}/{month}/{day}/{slug}/` or `/{slug}/`
### Match Predictions (Prognostics)
AI-powered daily predictions fetched from the FootyChat API. Not stored as WordPress posts — served dynamically.
**Archive page**: `/prognostics` or `/prognostics?prog_date=YYYY-MM-DD`
- Filterable by date, competition, confidence level
- Searchable by team name
- Sortable by time, confidence, or league
**Single prediction page**: `/prognostics/{slug}`
Each prediction includes:
- **Teams**: Home and away team names
- **Competition**: League or tournament name
- **Kickoff time**: Match date and time
- **Win probability**: Percentage distribution for home win, draw, and away win
- **Over/Under 2.5**: Prediction for total goals (over or under 2.5)
- **Both Teams to Score (BTTS)**: Yes or no prediction
- **Correct score**: Predicted final score (e.g. 2-1)
- **Confidence level**: High, medium, or low
- **Best bet**: Recommended wager with reasoning
- **Key stats**: Statistical highlights informing the prediction
- **Full analysis**: Detailed markdown analysis of the match
### Match Analysis (Custom Post Type)
Deep-dive analysis articles stored as `fc_analysis` custom post type.
URL pattern: `/analysis/{slug}/`
### Match Data (Custom Post Type)
Match data records stored as `fc_match` custom post type.
URL pattern: `/match/{slug}/`
## Taxonomy
### Competition
Hierarchical taxonomy (like categories) used to classify content by league/tournament.
URL pattern: `/competition/{slug}/`
Available competitions include: Premier League, La Liga, Champions League, Brasileirão, Serie A, Bundesliga, Ligue 1, Primeira Liga, Europa League, Copa Libertadores, and many more.
## Structured Data (JSON-LD)
### On Blog Posts
```json
{
"@type": "NewsArticle",
"headline": "...",
"description": "...",
"datePublished": "ISO 8601",
"dateModified": "ISO 8601",
"author": { "@type": "Person", "name": "..." },
"publisher": { "@type": "Organization", "name": "FootyChat" },
"image": { "@type": "ImageObject", "url": "..." },
"articleSection": "category name",
"wordCount": 1234
}
```
### On Match Analysis Posts (additional)
```json
{
"@type": "AnalysisNewsArticle",
"about": [
{ "@type": "SportsTeam", "name": "Home Team" },
{ "@type": "SportsTeam", "name": "Away Team" }
],
"mentions": [
{ "@type": "SportsOrganization", "name": "Competition" },
{ "@type": "Place", "name": "Venue" }
],
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".fc-post-hero__title", ".fc-post-content > p:first-of-type"]
},
"isAccessibleForFree": true
}
```
### On Prediction Pages
```json
{
"@type": "SportsEvent",
"name": "Home vs Away",
"startDate": "ISO 8601",
"homeTeam": { "@type": "SportsTeam", "name": "..." },
"awayTeam": { "@type": "SportsTeam", "name": "..." },
"superEvent": { "@type": "SportsEvent", "name": "Competition" }
}
```
### On Prediction Archives
```json
{
"@type": "CollectionPage",
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "item": { "@type": "SportsEvent" } }
]
}
}
```
### On All Pages
- **BreadcrumbList**: Navigation path
- **WebSite** (homepage): SearchAction for sitelinks
- **Organization** (homepage): Name, logo, social profiles
## REST API Endpoints
Base: `/wp-json/footychat/v1`
| Endpoint | Method | Description | Parameters |
|----------|--------|-------------|------------|
| `/prognostics` | GET | List predictions | date, competition, search, confidence, sort, page, per_page |
| `/prognostics/{slug}` | GET | Single prediction | slug |
| `/matches/live` | GET | Live matches | competition |
| `/matches/today` | GET | Today's matches | date, competition, status, page, per_page |
| `/metadata/competitions` | GET | Available leagues | date, type |
## External API
The FootyChat platform API at `https://api.footychat.app/api`:
- Live matches: `/rooms?filter=live&include=matchinfo`
- Upcoming matches: `/rooms?filter=upcoming&include=matchinfo`
- Day's matches: `/rooms/search?day=YYYY-MM-DD`
- Competition matches: `/competitions/{name}/matches?limit=20`
- Today's prognostics: `/social-posts/prognostics/today?date=YYYY-MM-DD`
- Single prognostic: `/social-posts/prognostics/{slug}`
## Meta Tags
All pages include:
- `` — contextual per page type
- `` — proper canonical URLs
- `` — noindex on search results and paginated pages
- Open Graph tags: og:title, og:description, og:image, og:url, og:type, og:site_name, og:locale
- Twitter Card tags: summary_large_image format
- Article meta: article:published_time, article:modified_time, article:author, article:section, article:tag
- AI citation: meta name="author", meta name="publisher", meta name="content-type"
## Contact
- App: https://footychat.app
- Blog: https://blog.footychat.app