Skip to content

Personal Bests

Sajuuk edited this page Sep 13, 2026 · 6 revisions

This page documents the requirements around the /pb/ endpoint, and its extended functionality.

Note

At some point, internal handling of the /pb/ endpoint will be brought into alignment with the logic for the /run/ endpoint, so that sub-categories can be part of the "flags" optional argument. For now, "flags" in PB is only for setting console/emulator or a player override.

Warning

Searching a users' Personal Bests is a slow operation. Unlike looking up a specific run and getting a small response output that is easily processable, the PB endpoint returns ALL personal bests that the user has. As a result, if a runner is particularly active in the community, their PB list could return thousands of runs, which then have to be filtered client-side, rather than being filtered automatically by the SRDC API.

If you just want to find a specific run, we recommend using the /run/ endpoint, which has much more specific client-side filtering support available, which ensures that speedrun.com only returns a small number of results connected to the board. The output of /run/ will almost always be the same as /pb/, but comes with the benefit that SRDC handles a large amount of the filtering for the end user, with this web app performing a modest amount of filtering on the returned result set to find the requested run.

For more information on how the /run/ endpoint works, refer to the Latest Runs wiki page.

Command

Looking up PBs can be achieved using the following command structure:

!pb <game> <platform> <category> [flags]

Game

Game is either a supported game that can be looked up on main boards, or the slug URL for supported category extensions and multirun boards.

For the list of supported games for this parameter, refer to Supported Games.

Platform

The platform parameter is used as a filter to target the specific game version that is needed. All platforms supported are described below.

When doing this for a CE or multirun, you should use the full name: eg hp1pc.

Code Platform
ps1 PlayStation 1
ps2 PlayStation 2
ps3 PlayStation 3
psp PlayStation Portable
gba Game Boy Advance
gbc Game Boy Colour
gcn Nintendo GameCube
xbox Microsoft Xbox 360
pc PC

Categories

These codes are based on normal run boards. As before, if you are looking for details relating to Category Extensions, Multiruns or LEGO Games, refer to the appropriate sub-pages.

The primary value is the most likely key that people will use to trigger this category. Aliases are alternative values that are internally mapped to the same category for convenience. If no aliases are available, then the appropriate cell will be blank.

Category Primary Aliases
Any% any
100% 100 hundo
Glitchless gless glitchless
No Major Skips nms nomajorskips
Any% No EDS noeds anynoeds
All Wizard Cards awc allwizardcards
Warpless warpless

Flags

This is an optional argument after <category>: it supports any additional values that users may include.

Category extensions, multiruns and complex LEGO Games boards have additional values or requirements, please refer to the relevant subpage for additional arguments that are needed.

All uses of !pb support the --player=<player_name> override. This argument is used when you are looking for a run from a player who is not defined in the <owner> parameter of the /run/ route.

Examples

  • !pb hp1 pc any --player=nixxo -> Looks for the PB in HP1 PC Any% for player "nixxo".
  • !pb hp1 ps1 100 --player=nixxo -> Looks for the PB in HP1 PS1 100% for player "nixxo".
  • !pb hp1 ps1 100 -> Looks for the PB in HP1 PS1 100% for the channel owner.
  • !pb hpce hp1pc 100gless --player=nixxo -> Looks for the PB in the HP Category Extensions board for HP1 PC 100% Glitchless for player "nixxo".
  • !pb hpmulti fs any -> Looks for the PB in the HP Multirun board for Full Series Any% for the channel owner.

Clone this wiki locally