Download OpenAPI specification:
Documentation for the endpoints provided by the Monkeytype API server.
Note that authentication is performed with the Authorization HTTP header in the format Authorization: ApeKey YOUR_APE_KEY
There is a rate limit of 30 requests per minute
across all endpoints with some endpoints being more strict. Rate limit rates are shared across all ape keys.
Checks to see if a username is available.
Rate limit: This operation can be called up to 60 times per minute for regular users.
name required | string [ 1 .. 16 ] characters ^[\da-zA-Z_-]+$ |
{- "message": "string"
}
Get user's personal bests.
Rate limit: This operation can be called up to 60 times per hour for regular users.
mode required | string Enum: "time" "words" "quote" "custom" "zen" |
(string or number) or string or string |
{- "message": "string",
- "data": {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
}
Get the users tags.
Rate limit: This operation can be called up to 60 times per hour for regular users.
{- "message": "string",
- "data": [
- {
- "_id": "string",
- "name": "string",
- "personalBests": {
- "time": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}, - "words": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}, - "quote": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}, - "custom": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}, - "zen": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}
}
}
]
}
Gets a user's typing stats data.
Rate limit: This operation can be called up to 60 times per hour for regular users.
{- "message": "string",
- "data": {
- "completedTests": 0,
- "startedTests": 0,
- "timeTyping": 0
}
}
Gets a user's profile.
Rate limit: This operation can be called up to 100 times per hour for regular users.
Required configuration: This operation can only be called if the configuration for users.profiles.enabled
is true
.
uidOrName required | string |
string or boolean Default: false |
{- "message": "string",
- "data": {
- "uid": "string",
- "name": "string",
- "banned": true,
- "addedAt": 0,
- "discordId": "string",
- "discordAvatar": "string",
- "xp": 0,
- "lbOptOut": true,
- "isPremium": true,
- "inventory": {
- "badges": [
- {
- "id": 0,
- "selected": true
}
]
}, - "allTimeLbs": {
- "time": {
- "property1": {
- "property1": {
- "rank": 0,
- "count": 0
}, - "property2": {
- "rank": 0,
- "count": 0
}
}, - "property2": {
- "property1": {
- "rank": 0,
- "count": 0
}, - "property2": {
- "rank": 0,
- "count": 0
}
}
}
}, - "typingStats": {
- "completedTests": 0,
- "startedTests": 0,
- "timeTyping": 0
}, - "personalBests": {
- "time": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}, - "words": {
- "property1": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
], - "property2": [
- {
- "acc": 100,
- "consistency": 100,
- "difficulty": "normal",
- "lazyMode": true,
- "language": "english",
- "punctuation": true,
- "numbers": true,
- "raw": 0,
- "wpm": 0,
- "timestamp": 0
}
]
}
}, - "streak": 0,
- "maxStreak": 0,
- "details": {
- "bio": "string",
- "keyboard": "string",
}
}
}
Send a forgot password email.
Rate limit: This operation can be called up to 1 times per minute for regular users.
Body
captcha required | string |
email required | string <email> |
{- "captcha": "string",
- "email": "[email protected]"
}
{- "message": "string"
}
Get test activity for the last up to 372 days for the current user .
Rate limit: This operation can be called up to 60 times per hour for regular users.
{- "message": "string",
- "data": {
- "testsByDays": [
- 0
], - "lastDay": 0
}
}
Get user's streak data.
Rate limit: This operation can be called up to 60 times per hour for regular users.
{- "message": "string",
- "data": {
- "lastResultTimestamp": 0,
- "length": 0,
- "maxLength": 0,
- "hourOffset": -11
}
}
Gets up to 1000 results.
Rate limit: This operation can be called up to 60 times per hour for regular users and up to 30 times per day with ApeKeys.
onOrAfterTimestamp | integer >= 1589428800000 Timestamp of the earliest result to fetch. If omitted the most recent results are fetched. |
offset | integer >= 0 Offset of the item at which to begin the response. |
limit | integer [ 0 .. 1000 ] Limit results to the given amount. |
{- "message": "string",
- "data": [
- {
- "wpm": 420,
- "rawWpm": 420,
- "charStats": null,
- "acc": 50,
- "mode": "time",
- "mode2": "string",
- "quoteLength": 3,
- "timestamp": 0,
- "testDuration": 1,
- "consistency": 100,
- "keyConsistency": 100,
- "uid": "string",
- "restartCount": 0,
- "incompleteTestSeconds": 0,
- "afkDuration": 0,
- "tags": [
- "string"
], - "bailedOut": true,
- "blindMode": true,
- "lazyMode": true,
- "funbox": [
- "58008"
], - "language": "english",
- "difficulty": "normal",
- "numbers": true,
- "punctuation": true,
- "_id": "string",
- "isPb": true
}
]
}
Get result by id.
Rate limit: This operation can be called up to 300 times per hour for regular users and up to 60 times per hour with ApeKeys.
resultId required | string^[a-zA-Z0-9_]+$ |
{- "message": "string",
- "data": {
- "wpm": 420,
- "rawWpm": 420,
- "charStats": null,
- "acc": 50,
- "mode": "time",
- "mode2": "string",
- "quoteLength": 3,
- "timestamp": 0,
- "testDuration": 1,
- "consistency": 100,
- "keyConsistency": 100,
- "chartData": {
- "wpm": [
- 0
], - "raw": [
- 0
], - "err": [
- 0
]
}, - "uid": "string",
- "restartCount": 0,
- "incompleteTestSeconds": 0,
- "afkDuration": 0,
- "tags": [
- "string"
], - "bailedOut": true,
- "blindMode": true,
- "lazyMode": true,
- "funbox": [
- "58008"
], - "language": "english",
- "difficulty": "normal",
- "numbers": true,
- "punctuation": true,
- "_id": "string",
- "keySpacingStats": {
- "average": 0,
- "sd": 0
}, - "keyDurationStats": {
- "average": 0,
- "sd": 0
}, - "name": "string",
- "isPb": true
}
}
Gets a user's last saved result.
Rate limit: This operation can be called up to 60 times per hour for regular users.
{- "message": "string",
- "data": {
- "wpm": 420,
- "rawWpm": 420,
- "charStats": null,
- "acc": 50,
- "mode": "time",
- "mode2": "string",
- "quoteLength": 3,
- "timestamp": 0,
- "testDuration": 1,
- "consistency": 100,
- "keyConsistency": 100,
- "chartData": {
- "wpm": [
- 0
], - "raw": [
- 0
], - "err": [
- 0
]
}, - "uid": "string",
- "restartCount": 0,
- "incompleteTestSeconds": 0,
- "afkDuration": 0,
- "tags": [
- "string"
], - "bailedOut": true,
- "blindMode": true,
- "lazyMode": true,
- "funbox": [
- "58008"
], - "language": "english",
- "difficulty": "normal",
- "numbers": true,
- "punctuation": true,
- "_id": "string",
- "keySpacingStats": {
- "average": 0,
- "sd": 0
}, - "keyDurationStats": {
- "average": 0,
- "sd": 0
}, - "name": "string",
- "isPb": true
}
}
get number of users personal bests grouped by wpm level (multiples of ten).
Rate limit: This operation can be called up to 60 times per minute for regular users.
language required | string Enum: "english" "english_1k" "english_5k" "english_10k" "english_25k" "english_450k" "english_commonly_misspelled" "english_contractions" "english_doubleletter" "english_shakespearean" "english_old" "english_medical" "spanish" "spanish_1k" "spanish_10k" "spanish_650k" "french" "french_1k" "french_2k" "french_10k" "french_600k" "french_bitoduc" "nepali" "nepali_1k" "nepali_romanized" "sanskrit" "sanskrit_roman" "santali" "azerbaijani" "azerbaijani_1k" "arabic" "arabic_10k" "arabic_egypt" "arabic_egypt_1k" "malagasy" "malagasy_1k" "malay" "malay_1k" "mongolian" "mongolian_10k" "kannada" "korean" "korean_1k" "korean_5k" "khmer" "chinese_simplified" "chinese_simplified_1k" "chinese_simplified_5k" "chinese_simplified_10k" "chinese_simplified_50k" "chinese_traditional" "russian" "russian_1k" "russian_5k" "russian_10k" "russian_25k" "russian_50k" "russian_375k" "russian_contractions" "russian_contractions_1k" "russian_abbreviations" "ukrainian" "ukrainian_1k" "ukrainian_10k" "ukrainian_50k" "ukrainian_endings" "ukrainian_latynka" "ukrainian_latynka_1k" "ukrainian_latynka_10k" "ukrainian_latynka_50k" "ukrainian_latynka_endings" "portuguese" "portuguese_acentos_e_cedilha" "portuguese_1k" "portuguese_3k" "portuguese_5k" "portuguese_320k" "portuguese_550k" "indonesian" "indonesian_1k" "indonesian_10k" "kurdish_central" "kurdish_central_2k" "kurdish_central_4k" "german" "german_1k" "german_10k" "german_250k" "swiss_german" "swiss_german_1k" "swiss_german_2k" "afrikaans" "afrikaans_1k" "afrikaans_10k" "georgian" "tamil" "tamil_1k" "tanglish" "tamil_old" "telugu" "telugu_1k" "greek" "greek_1k" "greek_5k" "greek_10k" "greek_25k" "greeklish" "greeklish_1k" "greeklish_5k" "greeklish_10k" "greeklish_25k" "turkish" "turkish_1k" "turkish_5k" "irish" "italian" "italian_1k" "italian_7k" "italian_60k" "italian_280k" "friulian" "latin" "galician" "thai" "thai_1k" "thai_5k" "thai_10k" "thai_20k" "thai_50k" "thai_60k" "polish" "polish_2k" "polish_5k" "polish_10k" "polish_20k" "polish_40k" "polish_200k" "czech" "czech_1k" "czech_10k" "slovak" "slovak_1k" "slovak_10k" "slovenian" "slovenian_1k" "slovenian_5k" "croatian" "croatian_1k" "dutch" "dutch_1k" "dutch_10k" "filipino" "filipino_1k" "danish" "danish_1k" "danish_10k" "hungarian" "hungarian_2k" "norwegian_bokmal" "norwegian_bokmal_1k" "norwegian_bokmal_5k" "norwegian_bokmal_10k" "norwegian_bokmal_150k" "norwegian_bokmal_600k" "norwegian_nynorsk" "norwegian_nynorsk_1k" "norwegian_nynorsk_5k" "norwegian_nynorsk_10k" "norwegian_nynorsk_100k" "norwegian_nynorsk_400k" "hebrew" "hebrew_1k" "hebrew_5k" "hebrew_10k" "icelandic_1k" "romanian" "romanian_1k" "romanian_5k" "romanian_10k" "romanian_25k" "romanian_50k" "romanian_100k" "romanian_200k" "lorem_ipsum" "finnish" "finnish_1k" "finnish_10k" "estonian" "estonian_1k" "estonian_5k" "estonian_10k" "udmurt" "welsh" "welsh_1k" "persian" "persian_1k" "persian_5k" "persian_20k" "persian_romanized" "marathi" "kazakh" "kazakh_1k" "vietnamese" "vietnamese_1k" "vietnamese_5k" "jyutping" "pinyin" "pinyin_1k" "pinyin_10k" "hausa" "hausa_1k" "swedish" "swedish_1k" "swedish_diacritics" "serbian_latin" "serbian_latin_10k" "serbian" "serbian_10k" "yoruba_1k" "swahili_1k" "maori_1k" "catalan" "catalan_1k" "lojban_gismu" "lojban_cmavo" "lithuanian" "lithuanian_1k" "lithuanian_3k" "bulgarian" "bulgarian_latin" "bangla" "bangla_letters" "bangla_10k" "bosnian" "bosnian_4k" "toki_pona" "toki_pona_ku_suli" "toki_pona_ku_lili" "esperanto" "esperanto_1k" "esperanto_10k" "esperanto_25k" "esperanto_36k" "esperanto_x_sistemo" "esperanto_x_sistemo_1k" "esperanto_x_sistemo_10k" "esperanto_x_sistemo_25k" "esperanto_x_sistemo_36k" "esperanto_h_sistemo" "esperanto_h_sistemo_1k" "esperanto_h_sistemo_10k" "esperanto_h_sistemo_25k" "esperanto_h_sistemo_36k" "kyrgyz" "kyrgyz_1k" "urdu" "urdu_1k" "urdu_5k" "urdish" "albanian" "albanian_1k" "shona" "shona_1k" "armenian" "armenian_1k" "armenian_western" "armenian_western_1k" "myanmar_burmese" "japanese_hiragana" "japanese_katakana" "japanese_romaji" "japanese_romaji_1k" "sinhala" "latvian" "latvian_1k" "maltese" "maltese_1k" "twitch_emotes" "git" "pig_latin" "hindi" "hindi_1k" "hinglish" "gujarati" "gujarati_1k" "macedonian" "macedonian_1k" "macedonian_10k" "macedonian_75k" "belarusian" "belarusian_1k" "belarusian_5k" "belarusian_10k" "belarusian_25k" "belarusian_50k" "belarusian_100k" "belarusian_lacinka" "belarusian_lacinka_1k" "tatar" "tatar_1k" "tatar_5k" "tatar_9k" "tatar_crimean" "tatar_crimean_1k" "tatar_crimean_5k" "tatar_crimean_10k" "tatar_crimean_15k" "tatar_crimean_cyrillic" "tatar_crimean_cyrillic_1k" "tatar_crimean_cyrillic_5k" "tatar_crimean_cyrillic_10k" "tatar_crimean_cyrillic_15k" "uzbek" "uzbek_1k" "uzbek_70k" "malayalam" "amharic" "amharic_1k" "amharic_5k" "oromo" "oromo_1k" "oromo_5k" "wordle" "league_of_legends" "wordle_1k" "typing_of_the_dead" "yiddish" "frisian" "frisian_1k" "pashto" "euskera" "klingon" "klingon_1k" "quenya" "occitan" "occitan_1k" "occitan_2k" "occitan_5k" "occitan_10k" "bashkir" "zulu" "kabyle" "kabyle_1k" "kabyle_2k" "kabyle_5k" "kabyle_10k" "code_python" "code_python_1k" "code_python_2k" "code_python_5k" "code_fsharp" "code_c" "code_csharp" "code_css" "code_c++" "code_dart" "code_brainfck" "code_javascript" "code_javascript_1k" "code_javascript_react" "code_jule" "code_julia" "code_haskell" "code_html" "code_nim" "code_nix" "code_pascal" "code_java" "code_kotlin" "code_go" "code_rockstar" "code_rust" "code_ruby" "code_r" "code_r_2k" "code_swift" "code_scala" "code_bash" "code_powershell" "code_lua" "code_luau" "code_latex" "code_typst" "code_matlab" "code_sql" "code_perl" "code_php" "code_vim" "code_vimscript" "code_opencl" "code_visual_basic" "code_arduino" "code_systemverilog" "code_elixir" "code_zig" "code_gdscript" "code_gdscript_2" "code_assembly" "code_v" "code_ook" "code_typescript" "code_odin" "xhosa" "xhosa_3k" "tibetan" "tibetan_1k" "code_cobol" "code_common_lisp" "docker_file" "code_fortran" "viossa" |
mode required | string Enum: "time" "words" "quote" "custom" "zen" |
required | (string or number) or string or string |
{- "message": "string",
- "data": {
- "property1": 0,
- "property2": 0
}
}
get number of tests and time users spend typing.
Rate limit: This operation can be called up to 60 times per minute for regular users.
{- "message": "string",
- "data": {
- "timeTyping": 0,
- "testsCompleted": 0,
- "testsStarted": 0
}
}
Get all-time leaderboard.
Rate limit: This operation can be called up to 500 times per hour for regular users.
language required | string Enum: "english" "english_1k" "english_5k" "english_10k" "english_25k" "english_450k" "english_commonly_misspelled" "english_contractions" "english_doubleletter" "english_shakespearean" "english_old" "english_medical" "spanish" "spanish_1k" "spanish_10k" "spanish_650k" "french" "french_1k" "french_2k" "french_10k" "french_600k" "french_bitoduc" "nepali" "nepali_1k" "nepali_romanized" "sanskrit" "sanskrit_roman" "santali" "azerbaijani" "azerbaijani_1k" "arabic" "arabic_10k" "arabic_egypt" "arabic_egypt_1k" "malagasy" "malagasy_1k" "malay" "malay_1k" "mongolian" "mongolian_10k" "kannada" "korean" "korean_1k" "korean_5k" "khmer" "chinese_simplified" "chinese_simplified_1k" "chinese_simplified_5k" "chinese_simplified_10k" "chinese_simplified_50k" "chinese_traditional" "russian" "russian_1k" "russian_5k" "russian_10k" "russian_25k" "russian_50k" "russian_375k" "russian_contractions" "russian_contractions_1k" "russian_abbreviations" "ukrainian" "ukrainian_1k" "ukrainian_10k" "ukrainian_50k" "ukrainian_endings" "ukrainian_latynka" "ukrainian_latynka_1k" "ukrainian_latynka_10k" "ukrainian_latynka_50k" "ukrainian_latynka_endings" "portuguese" "portuguese_acentos_e_cedilha" "portuguese_1k" "portuguese_3k" "portuguese_5k" "portuguese_320k" "portuguese_550k" "indonesian" "indonesian_1k" "indonesian_10k" "kurdish_central" "kurdish_central_2k" "kurdish_central_4k" "german" "german_1k" "german_10k" "german_250k" "swiss_german" "swiss_german_1k" "swiss_german_2k" "afrikaans" "afrikaans_1k" "afrikaans_10k" "georgian" "tamil" "tamil_1k" "tanglish" "tamil_old" "telugu" "telugu_1k" "greek" "greek_1k" "greek_5k" "greek_10k" "greek_25k" "greeklish" "greeklish_1k" "greeklish_5k" "greeklish_10k" "greeklish_25k" "turkish" "turkish_1k" "turkish_5k" "irish" "italian" "italian_1k" "italian_7k" "italian_60k" "italian_280k" "friulian" "latin" "galician" "thai" "thai_1k" "thai_5k" "thai_10k" "thai_20k" "thai_50k" "thai_60k" "polish" "polish_2k" "polish_5k" "polish_10k" "polish_20k" "polish_40k" "polish_200k" "czech" "czech_1k" "czech_10k" "slovak" "slovak_1k" "slovak_10k" "slovenian" "slovenian_1k" "slovenian_5k" "croatian" "croatian_1k" "dutch" "dutch_1k" "dutch_10k" "filipino" "filipino_1k" "danish" "danish_1k" "danish_10k" "hungarian" "hungarian_2k" "norwegian_bokmal" "norwegian_bokmal_1k" "norwegian_bokmal_5k" "norwegian_bokmal_10k" "norwegian_bokmal_150k" "norwegian_bokmal_600k" "norwegian_nynorsk" "norwegian_nynorsk_1k" "norwegian_nynorsk_5k" "norwegian_nynorsk_10k" "norwegian_nynorsk_100k" "norwegian_nynorsk_400k" "hebrew" "hebrew_1k" "hebrew_5k" "hebrew_10k" "icelandic_1k" "romanian" "romanian_1k" "romanian_5k" "romanian_10k" "romanian_25k" "romanian_50k" "romanian_100k" "romanian_200k" "lorem_ipsum" "finnish" "finnish_1k" "finnish_10k" "estonian" "estonian_1k" "estonian_5k" "estonian_10k" "udmurt" "welsh" "welsh_1k" "persian" "persian_1k" "persian_5k" "persian_20k" "persian_romanized" "marathi" "kazakh" "kazakh_1k" "vietnamese" "vietnamese_1k" "vietnamese_5k" "jyutping" "pinyin" "pinyin_1k" "pinyin_10k" "hausa" "hausa_1k" "swedish" "swedish_1k" "swedish_diacritics" "serbian_latin" "serbian_latin_10k" "serbian" "serbian_10k" "yoruba_1k" "swahili_1k" "maori_1k" "catalan" "catalan_1k" "lojban_gismu" "lojban_cmavo" "lithuanian" "lithuanian_1k" "lithuanian_3k" "bulgarian" "bulgarian_latin" "bangla" "bangla_letters" "bangla_10k" "bosnian" "bosnian_4k" "toki_pona" "toki_pona_ku_suli" "toki_pona_ku_lili" "esperanto" "esperanto_1k" "esperanto_10k" "esperanto_25k" "esperanto_36k" "esperanto_x_sistemo" "esperanto_x_sistemo_1k" "esperanto_x_sistemo_10k" "esperanto_x_sistemo_25k" "esperanto_x_sistemo_36k" "esperanto_h_sistemo" "esperanto_h_sistemo_1k" "esperanto_h_sistemo_10k" "esperanto_h_sistemo_25k" "esperanto_h_sistemo_36k" "kyrgyz" "kyrgyz_1k" "urdu" "urdu_1k" "urdu_5k" "urdish" "albanian" "albanian_1k" "shona" "shona_1k" "armenian" "armenian_1k" "armenian_western" "armenian_western_1k" "myanmar_burmese" "japanese_hiragana" "japanese_katakana" "japanese_romaji" "japanese_romaji_1k" "sinhala" "latvian" "latvian_1k" "maltese" "maltese_1k" "twitch_emotes" "git" "pig_latin" "hindi" "hindi_1k" "hinglish" "gujarati" "gujarati_1k" "macedonian" "macedonian_1k" "macedonian_10k" "macedonian_75k" "belarusian" "belarusian_1k" "belarusian_5k" "belarusian_10k" "belarusian_25k" "belarusian_50k" "belarusian_100k" "belarusian_lacinka" "belarusian_lacinka_1k" "tatar" "tatar_1k" "tatar_5k" "tatar_9k" "tatar_crimean" "tatar_crimean_1k" "tatar_crimean_5k" "tatar_crimean_10k" "tatar_crimean_15k" "tatar_crimean_cyrillic" "tatar_crimean_cyrillic_1k" "tatar_crimean_cyrillic_5k" "tatar_crimean_cyrillic_10k" "tatar_crimean_cyrillic_15k" "uzbek" "uzbek_1k" "uzbek_70k" "malayalam" "amharic" "amharic_1k" "amharic_5k" "oromo" "oromo_1k" "oromo_5k" "wordle" "league_of_legends" "wordle_1k" "typing_of_the_dead" "yiddish" "frisian" "frisian_1k" "pashto" "euskera" "klingon" "klingon_1k" "quenya" "occitan" "occitan_1k" "occitan_2k" "occitan_5k" "occitan_10k" "bashkir" "zulu" "kabyle" "kabyle_1k" "kabyle_2k" "kabyle_5k" "kabyle_10k" "code_python" "code_python_1k" "code_python_2k" "code_python_5k" "code_fsharp" "code_c" "code_csharp" "code_css" "code_c++" "code_dart" "code_brainfck" "code_javascript" "code_javascript_1k" "code_javascript_react" "code_jule" "code_julia" "code_haskell" "code_html" "code_nim" "code_nix" "code_pascal" "code_java" "code_kotlin" "code_go" "code_rockstar" "code_rust" "code_ruby" "code_r" "code_r_2k" "code_swift" "code_scala" "code_bash" "code_powershell" "code_lua" "code_luau" "code_latex" "code_typst" "code_matlab" "code_sql" "code_perl" "code_php" "code_vim" "code_vimscript" "code_opencl" "code_visual_basic" "code_arduino" "code_systemverilog" "code_elixir" "code_zig" "code_gdscript" "code_gdscript_2" "code_assembly" "code_v" "code_ook" "code_typescript" "code_odin" "xhosa" "xhosa_3k" "tibetan" "tibetan_1k" "code_cobol" "code_common_lisp" "docker_file" "code_fortran" "viossa" |
mode required | string Enum: "time" "words" "quote" "custom" "zen" |
required | (string or number) or string or string |
page | integer [ 0 .. 9007199254740991 ] Default: 0 |
pageSize | integer ( 0 .. 200 ] Default: 50 |
{- "message": "string",
- "data": {
- "count": 0,
- "pageSize": 0,
- "entries": [
- {
- "wpm": 0,
- "acc": 100,
- "timestamp": 0,
- "raw": 0,
- "consistency": 0,
- "uid": "string",
- "name": "string",
- "discordId": "string",
- "discordAvatar": "string",
- "rank": 0,
- "badgeId": 0,
- "isPremium": true
}
]
}
}
Get the rank of the current user on the all-time leaderboard.
Rate limit: This operation can be called up to 500 times per hour for regular users.
language required | string Enum: "english" "english_1k" "english_5k" "english_10k" "english_25k" "english_450k" "english_commonly_misspelled" "english_contractions" "english_doubleletter" "english_shakespearean" "english_old" "english_medical" "spanish" "spanish_1k" "spanish_10k" "spanish_650k" "french" "french_1k" "french_2k" "french_10k" "french_600k" "french_bitoduc" "nepali" "nepali_1k" "nepali_romanized" "sanskrit" "sanskrit_roman" "santali" "azerbaijani" "azerbaijani_1k" "arabic" "arabic_10k" "arabic_egypt" "arabic_egypt_1k" "malagasy" "malagasy_1k" "malay" "malay_1k" "mongolian" "mongolian_10k" "kannada" "korean" "korean_1k" "korean_5k" "khmer" "chinese_simplified" "chinese_simplified_1k" "chinese_simplified_5k" "chinese_simplified_10k" "chinese_simplified_50k" "chinese_traditional" "russian" "russian_1k" "russian_5k" "russian_10k" "russian_25k" "russian_50k" "russian_375k" "russian_contractions" "russian_contractions_1k" "russian_abbreviations" "ukrainian" "ukrainian_1k" "ukrainian_10k" "ukrainian_50k" "ukrainian_endings" "ukrainian_latynka" "ukrainian_latynka_1k" "ukrainian_latynka_10k" "ukrainian_latynka_50k" "ukrainian_latynka_endings" "portuguese" "portuguese_acentos_e_cedilha" "portuguese_1k" "portuguese_3k" "portuguese_5k" "portuguese_320k" "portuguese_550k" "indonesian" "indonesian_1k" "indonesian_10k" "kurdish_central" "kurdish_central_2k" "kurdish_central_4k" "german" "german_1k" "german_10k" "german_250k" "swiss_german" "swiss_german_1k" "swiss_german_2k" "afrikaans" "afrikaans_1k" "afrikaans_10k" "georgian" "tamil" "tamil_1k" "tanglish" "tamil_old" "telugu" "telugu_1k" "greek" "greek_1k" "greek_5k" "greek_10k" "greek_25k" "greeklish" "greeklish_1k" "greeklish_5k" "greeklish_10k" "greeklish_25k" "turkish" "turkish_1k" "turkish_5k" "irish" "italian" "italian_1k" "italian_7k" "italian_60k" "italian_280k" "friulian" "latin" "galician" "thai" "thai_1k" "thai_5k" "thai_10k" "thai_20k" "thai_50k" "thai_60k" "polish" "polish_2k" "polish_5k" "polish_10k" "polish_20k" "polish_40k" "polish_200k" "czech" "czech_1k" "czech_10k" "slovak" "slovak_1k" "slovak_10k" "slovenian" "slovenian_1k" "slovenian_5k" "croatian" "croatian_1k" "dutch" "dutch_1k" "dutch_10k" "filipino" "filipino_1k" "danish" "danish_1k" "danish_10k" "hungarian" "hungarian_2k" "norwegian_bokmal" "norwegian_bokmal_1k" "norwegian_bokmal_5k" "norwegian_bokmal_10k" "norwegian_bokmal_150k" "norwegian_bokmal_600k" "norwegian_nynorsk" "norwegian_nynorsk_1k" "norwegian_nynorsk_5k" "norwegian_nynorsk_10k" "norwegian_nynorsk_100k" "norwegian_nynorsk_400k" "hebrew" "hebrew_1k" "hebrew_5k" "hebrew_10k" "icelandic_1k" "romanian" "romanian_1k" "romanian_5k" "romanian_10k" "romanian_25k" "romanian_50k" "romanian_100k" "romanian_200k" "lorem_ipsum" "finnish" "finnish_1k" "finnish_10k" "estonian" "estonian_1k" "estonian_5k" "estonian_10k" "udmurt" "welsh" "welsh_1k" "persian" "persian_1k" "persian_5k" "persian_20k" "persian_romanized" "marathi" "kazakh" "kazakh_1k" "vietnamese" "vietnamese_1k" "vietnamese_5k" "jyutping" "pinyin" "pinyin_1k" "pinyin_10k" "hausa" "hausa_1k" "swedish" "swedish_1k" "swedish_diacritics" "serbian_latin" "serbian_latin_10k" "serbian" "serbian_10k" "yoruba_1k" "swahili_1k" "maori_1k" "catalan" "catalan_1k" "lojban_gismu" "lojban_cmavo" "lithuanian" "lithuanian_1k" "lithuanian_3k" "bulgarian" "bulgarian_latin" "bangla" "bangla_letters" "bangla_10k" "bosnian" "bosnian_4k" "toki_pona" "toki_pona_ku_suli" "toki_pona_ku_lili" "esperanto" "esperanto_1k" "esperanto_10k" "esperanto_25k" "esperanto_36k" "esperanto_x_sistemo" "esperanto_x_sistemo_1k" "esperanto_x_sistemo_10k" "esperanto_x_sistemo_25k" "esperanto_x_sistemo_36k" "esperanto_h_sistemo" "esperanto_h_sistemo_1k" "esperanto_h_sistemo_10k" "esperanto_h_sistemo_25k" "esperanto_h_sistemo_36k" "kyrgyz" "kyrgyz_1k" "urdu" "urdu_1k" "urdu_5k" "urdish" "albanian" "albanian_1k" "shona" "shona_1k" "armenian" "armenian_1k" "armenian_western" "armenian_western_1k" "myanmar_burmese" "japanese_hiragana" "japanese_katakana" "japanese_romaji" "japanese_romaji_1k" "sinhala" "latvian" "latvian_1k" "maltese" "maltese_1k" "twitch_emotes" "git" "pig_latin" "hindi" "hindi_1k" "hinglish" "gujarati" "gujarati_1k" "macedonian" "macedonian_1k" "macedonian_10k" "macedonian_75k" "belarusian" "belarusian_1k" "belarusian_5k" "belarusian_10k" "belarusian_25k" "belarusian_50k" "belarusian_100k" "belarusian_lacinka" "belarusian_lacinka_1k" "tatar" "tatar_1k" "tatar_5k" "tatar_9k" "tatar_crimean" "tatar_crimean_1k" "tatar_crimean_5k" "tatar_crimean_10k" "tatar_crimean_15k" "tatar_crimean_cyrillic" "tatar_crimean_cyrillic_1k" "tatar_crimean_cyrillic_5k" "tatar_crimean_cyrillic_10k" "tatar_crimean_cyrillic_15k" "uzbek" "uzbek_1k" "uzbek_70k" "malayalam" "amharic" "amharic_1k" "amharic_5k" "oromo" "oromo_1k" "oromo_5k" "wordle" "league_of_legends" "wordle_1k" "typing_of_the_dead" "yiddish" "frisian" "frisian_1k" "pashto" "euskera" "klingon" "klingon_1k" "quenya" "occitan" "occitan_1k" "occitan_2k" "occitan_5k" "occitan_10k" "bashkir" "zulu" "kabyle" "kabyle_1k" "kabyle_2k" "kabyle_5k" "kabyle_10k" "code_python" "code_python_1k" "code_python_2k" "code_python_5k" "code_fsharp" "code_c" "code_csharp" "code_css" "code_c++" "code_dart" "code_brainfck" "code_javascript" "code_javascript_1k" "code_javascript_react" "code_jule" "code_julia" "code_haskell" "code_html" "code_nim" "code_nix" "code_pascal" "code_java" "code_kotlin" "code_go" "code_rockstar" "code_rust" "code_ruby" "code_r" "code_r_2k" "code_swift" "code_scala" "code_bash" "code_powershell" "code_lua" "code_luau" "code_latex" "code_typst" "code_matlab" "code_sql" "code_perl" "code_php" "code_vim" "code_vimscript" "code_opencl" "code_visual_basic" "code_arduino" "code_systemverilog" "code_elixir" "code_zig" "code_gdscript" "code_gdscript_2" "code_assembly" "code_v" "code_ook" "code_typescript" "code_odin" "xhosa" "xhosa_3k" "tibetan" "tibetan_1k" "code_cobol" "code_common_lisp" "docker_file" "code_fortran" "viossa" |
mode required | string Enum: "time" "words" "quote" "custom" "zen" |
required | (string or number) or string or string |
{- "message": "string",
- "data": {
- "wpm": 0,
- "acc": 100,
- "timestamp": 0,
- "raw": 0,
- "consistency": 0,
- "uid": "string",
- "name": "string",
- "discordId": "string",
- "discordAvatar": "string",
- "rank": 0,
- "badgeId": 0,
- "isPremium": true
}
}
Get daily leaderboard.
Rate limit: This operation can be called up to 500 times per hour for regular users.
Required configuration: This operation can only be called if the configuration for dailyLeaderboards.enabled
is true
.
language required | string Enum: "english" "english_1k" "english_5k" "english_10k" "english_25k" "english_450k" "english_commonly_misspelled" "english_contractions" "english_doubleletter" "english_shakespearean" "english_old" "english_medical" "spanish" "spanish_1k" "spanish_10k" "spanish_650k" "french" "french_1k" "french_2k" "french_10k" "french_600k" "french_bitoduc" "nepali" "nepali_1k" "nepali_romanized" "sanskrit" "sanskrit_roman" "santali" "azerbaijani" "azerbaijani_1k" "arabic" "arabic_10k" "arabic_egypt" "arabic_egypt_1k" "malagasy" "malagasy_1k" "malay" "malay_1k" "mongolian" "mongolian_10k" "kannada" "korean" "korean_1k" "korean_5k" "khmer" "chinese_simplified" "chinese_simplified_1k" "chinese_simplified_5k" "chinese_simplified_10k" "chinese_simplified_50k" "chinese_traditional" "russian" "russian_1k" "russian_5k" "russian_10k" "russian_25k" "russian_50k" "russian_375k" "russian_contractions" "russian_contractions_1k" "russian_abbreviations" "ukrainian" "ukrainian_1k" "ukrainian_10k" "ukrainian_50k" "ukrainian_endings" "ukrainian_latynka" "ukrainian_latynka_1k" "ukrainian_latynka_10k" "ukrainian_latynka_50k" "ukrainian_latynka_endings" "portuguese" "portuguese_acentos_e_cedilha" "portuguese_1k" "portuguese_3k" "portuguese_5k" "portuguese_320k" "portuguese_550k" "indonesian" "indonesian_1k" "indonesian_10k" "kurdish_central" "kurdish_central_2k" "kurdish_central_4k" "german" "german_1k" "german_10k" "german_250k" "swiss_german" "swiss_german_1k" "swiss_german_2k" "afrikaans" "afrikaans_1k" "afrikaans_10k" "georgian" "tamil" "tamil_1k" "tanglish" "tamil_old" "telugu" "telugu_1k" "greek" "greek_1k" "greek_5k" "greek_10k" "greek_25k" "greeklish" "greeklish_1k" "greeklish_5k" "greeklish_10k" "greeklish_25k" "turkish" "turkish_1k" "turkish_5k" "irish" "italian" "italian_1k" "italian_7k" "italian_60k" "italian_280k" "friulian" "latin" "galician" "thai" "thai_1k" "thai_5k" "thai_10k" "thai_20k" "thai_50k" "thai_60k" "polish" "polish_2k" "polish_5k" "polish_10k" "polish_20k" "polish_40k" "polish_200k" "czech" "czech_1k" "czech_10k" "slovak" "slovak_1k" "slovak_10k" "slovenian" "slovenian_1k" "slovenian_5k" "croatian" "croatian_1k" "dutch" "dutch_1k" "dutch_10k" "filipino" "filipino_1k" "danish" "danish_1k" "danish_10k" "hungarian" "hungarian_2k" "norwegian_bokmal" "norwegian_bokmal_1k" "norwegian_bokmal_5k" "norwegian_bokmal_10k" "norwegian_bokmal_150k" "norwegian_bokmal_600k" "norwegian_nynorsk" "norwegian_nynorsk_1k" "norwegian_nynorsk_5k" "norwegian_nynorsk_10k" "norwegian_nynorsk_100k" "norwegian_nynorsk_400k" "hebrew" "hebrew_1k" "hebrew_5k" "hebrew_10k" "icelandic_1k" "romanian" "romanian_1k" "romanian_5k" "romanian_10k" "romanian_25k" "romanian_50k" "romanian_100k" "romanian_200k" "lorem_ipsum" "finnish" "finnish_1k" "finnish_10k" "estonian" "estonian_1k" "estonian_5k" "estonian_10k" "udmurt" "welsh" "welsh_1k" "persian" "persian_1k" "persian_5k" "persian_20k" "persian_romanized" "marathi" "kazakh" "kazakh_1k" "vietnamese" "vietnamese_1k" "vietnamese_5k" "jyutping" "pinyin" "pinyin_1k" "pinyin_10k" "hausa" "hausa_1k" "swedish" "swedish_1k" "swedish_diacritics" "serbian_latin" "serbian_latin_10k" "serbian" "serbian_10k" "yoruba_1k" "swahili_1k" "maori_1k" "catalan" "catalan_1k" "lojban_gismu" "lojban_cmavo" "lithuanian" "lithuanian_1k" "lithuanian_3k" "bulgarian" "bulgarian_latin" "bangla" "bangla_letters" "bangla_10k" "bosnian" "bosnian_4k" "toki_pona" "toki_pona_ku_suli" "toki_pona_ku_lili" "esperanto" "esperanto_1k" "esperanto_10k" "esperanto_25k" "esperanto_36k" "esperanto_x_sistemo" "esperanto_x_sistemo_1k" "esperanto_x_sistemo_10k" "esperanto_x_sistemo_25k" "esperanto_x_sistemo_36k" "esperanto_h_sistemo" "esperanto_h_sistemo_1k" "esperanto_h_sistemo_10k" "esperanto_h_sistemo_25k" "esperanto_h_sistemo_36k" "kyrgyz" "kyrgyz_1k" "urdu" "urdu_1k" "urdu_5k" "urdish" "albanian" "albanian_1k" "shona" "shona_1k" "armenian" "armenian_1k" "armenian_western" "armenian_western_1k" "myanmar_burmese" "japanese_hiragana" "japanese_katakana" "japanese_romaji" "japanese_romaji_1k" "sinhala" "latvian" "latvian_1k" "maltese" "maltese_1k" "twitch_emotes" "git" "pig_latin" "hindi" "hindi_1k" "hinglish" "gujarati" "gujarati_1k" "macedonian" "macedonian_1k" "macedonian_10k" "macedonian_75k" "belarusian" "belarusian_1k" "belarusian_5k" "belarusian_10k" "belarusian_25k" "belarusian_50k" "belarusian_100k" "belarusian_lacinka" "belarusian_lacinka_1k" "tatar" "tatar_1k" "tatar_5k" "tatar_9k" "tatar_crimean" "tatar_crimean_1k" "tatar_crimean_5k" "tatar_crimean_10k" "tatar_crimean_15k" "tatar_crimean_cyrillic" "tatar_crimean_cyrillic_1k" "tatar_crimean_cyrillic_5k" "tatar_crimean_cyrillic_10k" "tatar_crimean_cyrillic_15k" "uzbek" "uzbek_1k" "uzbek_70k" "malayalam" "amharic" "amharic_1k" "amharic_5k" "oromo" "oromo_1k" "oromo_5k" "wordle" "league_of_legends" "wordle_1k" "typing_of_the_dead" "yiddish" "frisian" "frisian_1k" "pashto" "euskera" "klingon" "klingon_1k" "quenya" "occitan" "occitan_1k" "occitan_2k" "occitan_5k" "occitan_10k" "bashkir" "zulu" "kabyle" "kabyle_1k" "kabyle_2k" "kabyle_5k" "kabyle_10k" "code_python" "code_python_1k" "code_python_2k" "code_python_5k" "code_fsharp" "code_c" "code_csharp" "code_css" "code_c++" "code_dart" "code_brainfck" "code_javascript" "code_javascript_1k" "code_javascript_react" "code_jule" "code_julia" "code_haskell" "code_html" "code_nim" "code_nix" "code_pascal" "code_java" "code_kotlin" "code_go" "code_rockstar" "code_rust" "code_ruby" "code_r" "code_r_2k" "code_swift" "code_scala" "code_bash" "code_powershell" "code_lua" "code_luau" "code_latex" "code_typst" "code_matlab" "code_sql" "code_perl" "code_php" "code_vim" "code_vimscript" "code_opencl" "code_visual_basic" "code_arduino" "code_systemverilog" "code_elixir" "code_zig" "code_gdscript" "code_gdscript_2" "code_assembly" "code_v" "code_ook" "code_typescript" "code_odin" "xhosa" "xhosa_3k" "tibetan" "tibetan_1k" "code_cobol" "code_common_lisp" "docker_file" "code_fortran" "viossa" |
mode required | string Enum: "time" "words" "quote" "custom" "zen" |
required | (string or number) or string or string |
daysBefore | number Value: 1 |
page | integer [ 0 .. 9007199254740991 ] Default: 0 |
pageSize | integer ( 0 .. 200 ] Default: 50 |
{- "message": "string",
- "data": {
- "count": 0,
- "pageSize": 0,
- "entries": [
- {
- "wpm": 0,
- "acc": 100,
- "timestamp": 0,
- "raw": 0,
- "consistency": 0,
- "uid": "string",
- "name": "string",
- "discordId": "string",
- "discordAvatar": "string",
- "rank": 0,
- "badgeId": 0,
- "isPremium": true
}
], - "minWpm": 0
}
}
Get weekly xp leaderboard.
Rate limit: This operation can be called up to 500 times per hour for regular users.
Required configuration: This operation can only be called if the configuration for leaderboards.weeklyXp.enabled
is true
.
weeksBefore | number Value: 1 |
page | integer [ 0 .. 9007199254740991 ] Default: 0 |
pageSize | integer ( 0 .. 200 ] Default: 50 |
{- "message": "string",
- "data": {
- "count": 0,
- "pageSize": 0,
- "entries": [
- {
- "uid": "string",
- "name": "string",
- "lastActivityTimestamp": 0,
- "timeTypedSeconds": 0,
- "discordId": "string",
- "discordAvatar": "string",
- "badgeId": 0,
- "isPremium": true,
- "totalXp": 0,
- "rank": 0
}
]
}
}
Get list of public service announcements.
Rate limit: This operation can be called up to 60 times per minute for regular users.
{- "message": "string",
- "data": [
- {
- "_id": "string",
- "message": "string",
- "date": 0,
- "level": 0,
- "sticky": true
}
]
}
{- "message": "string",
- "data": {
- "maintenance": true,
- "dev": {
- "responseSlowdownMs": 0
}, - "quotes": {
- "reporting": {
- "enabled": true,
- "maxReports": 0,
- "contentReportLimit": 0
}, - "submissionsEnabled": true,
- "maxFavorites": 0
}, - "results": {
- "savingEnabled": true,
- "objectHashCheckEnabled": true,
- "filterPresets": {
- "enabled": true,
- "maxPresetsPerUser": 0
}, - "limits": {
- "regularUser": 0,
- "premiumUser": 0
}, - "maxBatchSize": 0
}, - "users": {
- "signUp": true,
- "lastHashesCheck": {
- "enabled": true,
- "maxHashes": 0
}, - "autoBan": {
- "enabled": true,
- "maxCount": 0,
- "maxHours": 0
}, - "profiles": {
- "enabled": true
}, - "discordIntegration": {
- "enabled": true
}, - "xp": {
- "enabled": true,
- "funboxBonus": 0,
- "gainMultiplier": 0,
- "maxDailyBonus": 0,
- "minDailyBonus": 0,
- "streak": {
- "enabled": true,
- "maxStreakDays": 0,
- "maxStreakMultiplier": 0
}
}, - "inbox": {
- "enabled": true,
- "maxMail": 0
}, - "premium": {
- "enabled": true
}
}, - "admin": {
- "endpointsEnabled": true
}, - "apeKeys": {
- "endpointsEnabled": true,
- "acceptKeys": true,
- "maxKeysPerUser": 0,
- "apeKeyBytes": 0,
- "apeKeySaltRounds": 0
}, - "rateLimiting": {
- "badAuthentication": {
- "enabled": true,
- "penalty": 0,
- "flaggedStatusCodes": [
- 0
]
}
}, - "dailyLeaderboards": {
- "enabled": true,
- "leaderboardExpirationTimeInDays": 0,
- "maxResults": 0,
- "validModeRules": [
- {
- "language": "string",
- "mode": "string",
- "mode2": "string"
}
], - "scheduleRewardsModeRules": [
- {
- "language": "string",
- "mode": "string",
- "mode2": "string"
}
], - "topResultsToAnnounce": 0,
- "xpRewardBrackets": [
- {
- "minRank": 0,
- "maxRank": 0,
- "minReward": 0,
- "maxReward": 0
}
]
}, - "leaderboards": {
- "minTimeTyping": 0,
- "weeklyXp": {
- "enabled": true,
- "expirationTimeInDays": 0,
- "xpRewardBrackets": [
- {
- "minRank": 0,
- "maxRank": 0,
- "minReward": 0,
- "maxReward": 0
}
]
}
}
}
}