Tournaments

All endpoints are relative to https://play.limitlesstcg.com/api.

GET /tournaments

Returns an array of tournaments, with some basic information for categorizing. Can be filtered by game or format. By default the 50 most recent entries are returned, that number can be changed with the limit query parameter.

Query Parameters

All query parameters are optional.

NameTypeDescription
gameStringGame ID, e.g. PTCG, VGC. See /games endpoint for reference.
formatStringFormat ID. See /games endpoint for reference.
limitNumberNumber of tournaments to be returned.

Response Format

FieldTypeDescription
idStringUnique ID of the tournament, to be used with all other tournament endpoints.
gameStringAbbreviation/ID of the game the tournament is played in. See /games endpoint for reference.
formatStringAbbreviation/ID of the format the tournament is played in. See /games endpoint for reference.
nameStringTournament name set by the organizer.
dateDateTimeScheduled tournament start set by the organizer.
playersNumberNumber of players that participated in the tournament.

Example Response

[
    {
        "id": "63fcb6d32fb42a11441fb777",
        "game": "VGC",
        "format": "23S2",
        "name": "Torneio Semanal VGC Brasil #07",
        "date": "2023-03-02T23:00:00.000Z",
        "players": 28
    },
    {
        "id": "63e931d12fb42a11441f513e",
        "game": "PTCG",
        "format": "STANDARD",
        "name": "Trust Your Feet PTCGLive #15 (SWSH to CRZ)",
        "date": "2023-03-02T22:00:00.000Z",
        "players": 47
    }
    ...
]

Example Use Cases

  • Getting the IDs of relevant tournaments for use with the other endpoints.

GET /tournaments/{id}/details

Returns more details about the requested tournament, including organizer, tournament structure and possible custom rules. All the information from the /tournaments endpoint is included as well.

Response Format

In addition to the fields listed above:

FieldTypeDescription
organizerObjectContains information about the organizer of the tournament.
→ idNumberID used to uniquely identify the organizer.
→ nameStringOrganizer name. Note that the name can change between tournaments, while the ID will always remain the same.
→ logoStringIf available, the url of the organizer's uploaded profile picture.
platformStringAbbreviation/ID of the platform the tournament is played on. See /games endpoint for reference.
decklistsBooleanIndicates whether the tournament used decklist / teamlist submission.
isPublicBooleanIndicates whether the tournament is listed publicly (otherwise accessible through direct link only).
isOnlineBooleanSet to true if the tournament is played online, false if it's an in-person event.
phasesObject[]The tournament structure as an array of objects, one per phase.
→ phaseNumberPhase number
→ typeStringPhase type, see organizer documentation for more details.
→ roundsNumberNumber of rounds in the phase. Note that live bracket phases are seen as 1 round internally.
→ modeStringNumber of games per match, BO1, BO3 or BO5.
bannedCardsObject[]Contains an array of custom bans, if used by the tournament (game specific).
specialRulesString[]Contains an array of rule identifiers, if used by the tournament (game specific).

Example Response

{
    "id": "636bf4efa527ff22cbbd82ae",
    "game": "PTCG",
    "format": "STANDARD",
    "name": "Limitless Showdown - November",
    "date": "2022-11-19T15:00:00.000Z",
    "players": 343,
    "organizer": {
        "id": 1,
        "name": "Limitless TCG",
        "logo": "https://limitlesstcg.s3.us-east-2.amazonaws.com/lotp/uploads/profile-pictures/uc9k2yryv437kpmn"
    },
    "decklists": true,
    "isPublic": true,
    "isOnline": true,
    "phases": [
        {
            "phase": 1,
            "type": "SWISS",
            "rounds": 11,
            "mode": "BO1"
        },
        {
            "phase": 2,
            "type": "SINGLE_BRACKET",
            "rounds": 1,
            "mode": "BO3"
        }
    ]
}

Example Use Cases

  • Fetching a tournament's info after receiving a webhook notification.

GET /tournaments/{id}/standings

Returns an array of all the players in the tournament, including final placing, score, and if available, their decklist.

Response Format

FieldTypeDescription
playerStringUsername/ID used to uniquely identify the player. Does not change between tournaments.
nameStringDisplay name chosen by the player, can change between tournaments.
countryStringISO alpha-2 code of the player's country, as selected by them.
placingNumberThe player's final placing in the tournament.
recordObjectContains the number of wins, losses and ties the player finished with.
decklist(game specific)Contains the decklist / teamlist of the player, format differs by game.
deckObjectIf the game has support for it, this field contains the player's auto assigned deck type.
dropNumberIf the player dropped from the tournament, this field contains the round during which they did so.

Example Response

[
    {
        "player": "espel",
        "name": "Tsubasa Shimizu",
        "country": "JP",
        "placing": 1,
        "record": {
            "wins": 13,
            "losses": 2,
            "ties": 0
        },
        "decklist": { ... },
        "deck": {
            "id": "lost-zone-box",
            "name": "Lost Zone Box",
            "icons": [
                "comfey",
                "sableye"
            ]
        },
        "drop": null
    },
    ...
]

Example Use Cases

  • Aggregating player and deck results across several tournaments.
  • Analyzing trends in decklists.

GET /tournaments/{id}/pairings

Returns an array of all the matches that have been played in the tournament.

Response Format

FieldTypeDescription
roundNumberRound during which the match happened.
phaseNumberPhase during which the match happened.
tableNumberTable number of the match (for all phase types except live brackets).
matchStringMatch label, used in live brackets to identify where in the bracket it happened.
player1StringUsername/ID of player A
player2StringUsername/ID of player B. If empty, the match entry is either a bye or an automatic loss for tardiness.
winnerString/NumberUsername/ID of the winning player, 0 if it ended in a tie, -1 if it ended in a double loss.

Example Response

[
    {
        "round": 1,
        "phase": 1,
        "table": 1,
        "winner": "shoji300",
        "player1": "hedilily",
        "player2": "shoji300"
    },
    ...
    {
        "phase": 2,
        "round": 12,
        "match": "T2-1",
        "winner": "espel",
        "player1": "harun",
        "player2": "espel"
    }
]

Example Use Cases

  • Creating a player ELO ranking based on tournament matches.
  • Combining match data with decklists data to create deep-going matchup analysis.

Last Updated: