Soccer API Tutorials

How Table Tennis Rankings Work (And How to Access Them via API)

Understand how table tennis world rankings, ranking points and movement work, including important 2026 changes, then learn how to retrieve and store current and historical ranking data through an API.

Table Tennis Rankings Guide

How Table Tennis Rankings Work (And How to Access Them via API)

Learn how table tennis rankings, points, movement and historical ranking snapshots work, then build current and historical player-ranking features with a developer-friendly Table Tennis Rankings API.

Rankings are one of the most important pieces of context in table tennis. They help users understand player strength, follow progression over time, compare opponents before a match and add context to tournament fields.

For developers, however, a ranking should never be treated as only one number. A production application also needs the ranking date, points, category, source, previous position and a stable player ID.

This guide explains the ranking concepts that matter for software development and then shows how to model, query and store ranking data through an API.

2026 context: ITTF changed the publication schedule for Senior and Youth rankings to Mondays at 08:00 UTC from 2026 and also adjusted Senior points distribution for middle rounds at ITTF and WTT events. Exact ranking rules should always be taken from the current official regulations.

1. What Does a Table Tennis Ranking Represent?

A ranking is an ordered snapshot of players under a specific ranking system and category at a specific point in time.

That last part matters. A player being ranked number 8 is incomplete information unless you also know which ranking list and which ranking date the value belongs to.

Position

The player’s place in the selected ranking list.

Points

The ranking points associated with that release where supplied.

Ranking date

The date or week the ranking snapshot represents.

Category

The singles, doubles or other ranking list represented.

Treat a ranking as a time-stamped record, not a permanent attribute on the player.

2. What Should a Ranking Record Contain?

Field Why it matters
player_id Connects the ranking to a stable player identity.
position Stores the player’s place in that release.
points Allows comparison and point-trend analysis where available.
ranking_date Makes the record historically meaningful.
previous_position Supports movement indicators.
ranking_category Prevents different ranking lists from being mixed together.
ranking_source Preserves attribution and ranking-system identity.
Illustrative ranking object
{
  "ranking_date": "2026-07-27",
  "position": 8,
  "previous_position": 10,
  "movement": 2,
  "points": 6420,
  "ranking_source": "PRODUCTION_SOURCE",
  "ranking_category": "mens_singles",
  "player": {
    "id": "player_tt_101",
    "name": "Player A",
    "nationality": "EX"
  }
}
The values above are illustrative. Production field names, points and source labels must match the real ranking feed.

3. Important Table Tennis Ranking Changes in 2026

Ranking systems evolve, so developers should avoid hard-coding rules that assume the regulations will never change.

Senior and Youth rankings moved to Monday publication

From 2026, ITTF Senior and Youth rankings are released on Mondays at 08:00 UTC, replacing the previous Tuesday publication schedule.

Senior points distribution was adjusted

ITTF also announced a revised Senior points structure for ITTF and WTT events. The update awards more points in middle rounds while maintaining the existing allocations for winners and first-round exits.

The practical lesson for developers is simple: if your application calculates derived ranking analytics, store the ranking release and regulation context rather than assuming an old points table is still valid.

Do not recreate official rankings from an outdated points table. Consume the official or licensed ranking record available to your product and preserve its source and publication date.

4. Table Tennis Has Multiple Ranking Categories

A common database mistake is to create one field called world_ranking and assume it describes everything.

The official ITTF world-ranking area currently publishes separate lists for Men’s Singles, Women’s Singles, Men’s Doubles, Women’s Doubles, Mixed Doubles and doubles-individual categories. Separate ITTF resources also cover Youth, Team and Para rankings.

Men’s Singles

A distinct ranking series with its own dated releases.

Women’s Singles

Store independently from all other categories.

Doubles

Men, women and mixed doubles require their own category identifiers.

Other ranking families

Youth, Team and Para rankings should remain separate data products.

Recommended category field
ranking_category:
mens_singles
womens_singles
mens_doubles
womens_doubles
mixed_doubles
...

5. How Should Developers Think About Ranking Points?

Ranking points come from eligible competition results under the relevant ranking regulations. Event value, round reached, expiration and special ranking rules can all affect the final total.

Historically, ITTF has described the core singles ranking concept as using a player’s best eight results in the applicable period. Because current regulations can change details around eligibility, expiration and point distribution, the safest software design is to consume the published ranking record rather than reconstruct the official total from partial match data.

Conceptual ranking flow
Eligible tournament results
          ↓
Ranking points by event / round
          ↓
Applicable ranking regulations
          ↓
Published ranking total
          ↓
Ranking position
This is a conceptual data flow, not an official point table.

6. Why Rankings Change Even When a Player Is Not Playing

Rankings are not only affected by the newest match result. Older results may stop contributing under the applicable ranking regulations, while other players can add stronger results.

This means a player can move up or down between releases without playing a match during the intervening period.

Developer implication

Do not infer ranking movement only from a player’s latest match. Compare two actual ranking snapshots.

7. How to Calculate Ranking Movement

Ranking movement compares the current position with the previous comparable ranking release.

Movement calculation
previous_position = 10
current_position = 8

movement =
previous_position - current_position

movement = +2

Moved up

10 → 8 produces +2 positions.

Moved down

8 → 11 produces -3 positions.

No change

The current and previous positions are identical.

New entry

No comparable previous ranking is available.

Do not calculate movement across unrelated ranking categories or incomparable releases.

8. Access Current Rankings Through an API

A ranking endpoint should let your application retrieve the latest supported release and filter it by category or player.

Illustrative endpoint
GET /v1/table-tennis/rankings
Latest Men’s Singles ranking
GET /v1/table-tennis/rankings
    ?ranking_date=latest
    &category=mens_singles
    &page=1
    &page_size=100

Useful ranking filters

Parameter Example Purpose
ranking_date latest Retrieve the current or a historical release.
category mens_singles Select the ranking list.
player_id player_tt_101 Return one player’s ranking record.
country EX Filter by nationality where supported.
min_position 1 Start a ranking range.
max_position 100 End a ranking range.

9. Retrieve Rankings With JavaScript

JavaScript
const params = new URLSearchParams({
  ranking_date: 'latest',
  category: 'mens_singles',
  page: '1',
  page_size: '100'
});

const response = await fetch(
  `/api/table-tennis/rankings?${params}`
);

if (!response.ok) {
  throw new Error(
    `Ranking request failed: ${response.status}`
  );
}

const payload = await response.json();

for (const ranking of payload.data) {
  console.log(
    ranking.position,
    ranking.player.name,
    ranking.points
  );
}

Keep the private provider credential on your backend exactly as you would for live-score endpoints.

10. Retrieve Rankings With Python

Python
import requests

response = requests.get(
    "https://api.example.com/v1/table-tennis/rankings",
    params={
        "ranking_date": "latest",
        "category": "mens_singles",
        "page": 1,
        "page_size": 100,
    },
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Accept": "application/json",
    },
    timeout=15,
)

response.raise_for_status()
rankings = response.json()

11. Retrieve Rankings With PHP

PHP
<?php

$query = http_build_query([
    'ranking_date' => 'latest',
    'category' => 'mens_singles',
    'page' => 1,
    'page_size' => 100,
]);

$url = 'https://api.example.com/v1/table-tennis/rankings?' . $query;

$ch = curl_init($url);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer YOUR_API_KEY',
        'Accept: application/json',
    ],
    CURLOPT_TIMEOUT => 15,
]);

$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

12. Store Historical Ranking Snapshots

Do not overwrite a player’s old ranking every time a new release arrives. If you do, you lose ranking charts, historical movement and the ranking context that existed before earlier matches.

Suggested database table
player_rankings

id
player_id
ranking_source
ranking_category
ranking_date
position
previous_position
points
created_at

UNIQUE:
player_id
ranking_source
ranking_category
ranking_date

Historical API request

Illustrative route
GET /v1/table-tennis/players/player_tt_101/rankings
    ?date_from=2025-01-01
    &date_to=2026-08-07
    &sort=asc
Illustrative history response
{
  "data": [
    {
      "ranking_date": "2026-05-04",
      "position": 14,
      "points": 5310
    },
    {
      "ranking_date": "2026-06-01",
      "position": 11,
      "points": 5740
    },
    {
      "ranking_date": "2026-07-27",
      "position": 8,
      "points": 6420
    }
  ]
}

13. Build a Ranking History Chart

Once historical snapshots are stored, ranking progression becomes a straightforward time series.

Prepare chart data
const chartData = rankingHistory.map(item => ({
  x: item.ranking_date,
  y: item.position
}));
Remember: ranking position is visually reversed. Position 1 is better than position 20, so ranking charts often reverse the vertical axis.

14. Use Rankings on Match Preview Pages

Example comparison

Player A · Ranking 8 · Previous 10 · Movement +2

Player B · Ranking 14 · Previous 13 · Movement -1

Ranking is useful context, but a match preview becomes much stronger when it also includes recent form, head-to-head history and broader statistics.

Keep those signals separate. Do not present a ranking difference as a guaranteed prediction.

15. Use Rankings as One Prediction Feature

Current ranking

A high-level player-strength signal.

Ranking difference

Compares the players before the target match.

Ranking movement

Adds recent ranking direction.

Historical ranking

Reconstructs what was known before an older match.

Avoid data leakage: when training a historical model, use the ranking that existed before that match. Do not use a later ranking snapshot.

16. Ranking and Tournament Seeding Are Different

Ranking Tournament seed
Belongs to a ranking system. Belongs to a specific tournament.
Changes across ranking releases. Assigned for that event or draw.
Useful across many competitions. Relevant to one tournament context.
Store by ranking date. Store against the tournament entry.

Store both values independently when both are available.

17. Cache Rankings Around Releases, Not Live Points

Rankings are slow-changing reference data compared with live match scores. They should not be polled every few seconds.

Recommended refresh workflow
Detect new ranking release
        ↓
Fetch ranking list
        ↓
Store historical snapshot
        ↓
Update current player ranking
        ↓
Invalidate ranking cache
        ↓
Serve cached rankings

Because ITTF Senior and Youth rankings moved to Monday publication in 2026, release-aware refresh logic is a better fit than high-frequency polling.

18. Handle Ranking Data Carefully

  • Preserve the ranking date
  • Preserve the ranking category
  • Preserve the ranking source
  • Use stable player IDs
  • Do not guess missing ranking points
  • Do not mix singles and doubles lists
  • Do not treat tournament seed as world ranking
  • Do not overwrite historical ranking snapshots
  • Version any derived calculation logic
  • Confirm rights before storing or redistributing ranking history

19. Production Ranking API Checklist

  • Confirm which ranking sources the API supports
  • Confirm which ranking categories are available
  • Check historical ranking depth
  • Store one record per ranking release
  • Use a unique key across player, source, category and date
  • Cache current rankings between releases
  • Keep ranking history separate from current player profile fields
  • Use pre-match rankings in historical prediction models
  • Store tournament seed independently
  • Verify commercial display and storage rights

Common Ranking API Mistakes

Saving only current rank

You lose the entire ranking timeline.

Mixing categories

Singles and doubles records should never share one ranking series.

Using names as keys

Join data through stable player IDs.

Polling too often

Rankings should be refreshed around releases.

Claiming an official source

Only label data as ITTF where the source and rights support it.

Future-data leakage

Historical models must use rankings available before the match.

Frequently Asked Questions

When are ITTF Senior and Youth rankings published in 2026?

ITTF announced that from 2026 both are released on Mondays at 08:00 UTC.

Can a player’s ranking change without playing that week?

Yes. Ranking totals and positions can also be affected by changes in which results contribute and by results achieved by other players.

Can I access historical table tennis rankings through an API?

Yes where the selected API product includes historical ranking snapshots.

What is ranking movement?

It is the position change between two comparable ranking releases.

Are ranking and tournament seed the same?

No. Ranking belongs to a ranking system; seeding belongs to a specific tournament.

Can rankings be used in prediction models?

Yes, as one signal alongside form, statistics and H2H. Use only the ranking that was available before the match being predicted.

Official References

Research checked: 7 August 2026.

ITTF — 2026 World Ranking regulation updates and Monday publication schedule

ITTF — Table Tennis World Ranking releases

ITTF — Ranking updates and regulation publication history

Build Ranking Features With the Table Tennis API

Retrieve current rankings, preserve historical snapshots, calculate movement and connect ranking context to player profiles, statistics and head-to-head pages.

Rankings API API Documentation Statistics API

Build Cricket Products With Reliable API Data

Access live scores, fixtures, ball-by-ball updates, statistics, odds, predictions and historical cricket data through one developer-friendly API.

Get API Access
Written By

James

Chat on WhatsApp