Monkeytype API (2.0.0)

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.

Users

User account data.

get user

Get a user's data.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

delete user

Deletes a user's account.

Rate limit: This operation can be called up to 3 times per day for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

create user

Creates a new user.

Rate limit: This operation can be called up to 2 times per day for regular users.

Required configuration: This operation can only be called if the configuration for users.signUp is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

email
string <email>
name
required
string [ 1 .. 16 ] characters ^[\da-zA-Z_-]+$
uid
string
captcha
required
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "string"
}

check name

Checks to see if a username is available.

Rate limit: This operation can be called up to 60 times per minute for regular users.

path Parameters
name
required
string [ 1 .. 16 ] characters ^[\da-zA-Z_-]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

reset user

Completely resets a user's account to a blank state.

Rate limit: This operation can be called up to 3 times per day for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

update username

Updates a user's name.

Rate limit: This operation can be called up to 3 times per day for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

name
required
string [ 1 .. 16 ] characters ^[\da-zA-Z_-]+$

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

update lbMemory

Updates a user's cached leaderboard state.

Rate limit: This operation can be called up to 60 times per minute for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

mode
required
string
Enum: "time" "words" "quote" "custom" "zen"
required
(string or number) or string or string
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" "viossa_njutro"
rank
required
integer >= 0

Responses

Request samples

Content type
application/json
{
  • "mode": "time",
  • "mode2": "string",
  • "language": "english",
  • "rank": 0
}

Response samples

Content type
application/json
{
  • "message": "string"
}

update email

Updates a user's email.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

newEmail
required
string <email>
previousEmail
required
string <email>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "string"
}

update password

Updates a user's email.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

newPassword
required
string >= 6 characters

Responses

Request samples

Content type
application/json
{
  • "newPassword": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get personal bests

Get user's personal bests.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuthApeKey
query Parameters
mode
required
string
Enum: "time" "words" "quote" "custom" "zen"
(string or number) or string or string

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

delete personal bests

Deletes a user's personal bests.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

leaderboards opt out

Opt out of the leaderboards.

Rate limit: This operation can be called up to 10 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

add result filter preset

Add a result filter preset.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for results.filterPresets.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

_id
required
string^[a-zA-Z0-9_]+$
name
required
string <= 16 characters ^[0-9a-zA-Z_.-]+$
required
object
required
object
required
object
required
object
required
object
required
object
required
object
required
object
required
object
required
object
required
object
required
object

Responses

Request samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "pb": {
    },
  • "difficulty": {
    },
  • "mode": {
    },
  • "words": {
    },
  • "time": {
    },
  • "quoteLength": {
    },
  • "punctuation": {
    },
  • "numbers": {
    },
  • "date": {
    },
  • "tags": {
    },
  • "language": {
    },
  • "funbox": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": "string"
}

remove result filter preset

Remove a result filter preset.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for results.filterPresets.enabled is true.

Authorizations:
BearerAuth
path Parameters
presetId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

get tags

Get the users tags.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuthApeKey

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

add tag

Add a tag for the current user.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

tagName
required
string <= 16 characters ^[0-9a-zA-Z_.-]+$

Responses

Request samples

Content type
application/json
{
  • "tagName": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

edit tag

Edit a tag.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

tagId
required
string^[a-zA-Z0-9_]+$
newName
required
string <= 16 characters ^[0-9a-zA-Z_.-]+$

Responses

Request samples

Content type
application/json
{
  • "tagId": "string",
  • "newName": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

delete tag

Delete a tag.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
path Parameters
tagId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

delete tag PBs

Delete personal bests of a tag.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
path Parameters
tagId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

get custom themes

Get custom themes for the current user.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

add custom themes

Add a custom theme for the current user.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

name
required
string <= 16 characters ^[0-9a-zA-Z_-]+$
colors
required
any

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "colors": null
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

delete custom themes

Delete a custom theme.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

themeId
required
string^[a-zA-Z0-9_]+$

Responses

Request samples

Content type
application/json
{
  • "themeId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

edit custom themes

Edit a custom theme.

Rate limit: This operation can be called up to 30 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

themeId
required
string^[a-zA-Z0-9_]+$
required
object

Responses

Request samples

Content type
application/json
{
  • "themeId": "string",
  • "theme": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

discord oauth

Start OAuth authentication with discord.

Rate limit: This operation can be called up to 15 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for users.discordIntegration.enabled is true.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{}

link with discord

Links a user's account with a discord account.

Rate limit: This operation can be called up to 15 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for users.discordIntegration.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

tokenType
required
string
accessToken
required
string
state
required
string = 20 characters

Responses

Request samples

Content type
application/json
{
  • "tokenType": "string",
  • "accessToken": "string",
  • "state": "stringstringstringst"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

unlink discord

Unlinks a user's account with a discord account.

Rate limit: This operation can be called up to 15 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

get stats

Gets a user's typing stats data.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuthApeKey

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

set streak hour offset

Sets a user's streak hour offset.

Rate limit: This operation can be called up to 5 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

hourOffset
required
integer [ -11 .. 12 ]

Responses

Request samples

Content type
application/json
{
  • "hourOffset": -11
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get favorite quotes

Gets a user's favorite quotes.

Rate limit: This operation can be called up to 50 times every 30 minutes for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

add favorite quotes

Add a quote to the user's favorite quotes.

Rate limit: This operation can be called up to 50 times every 30 minutes for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

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" "viossa_njutro"
required
string or number

Responses

Request samples

Content type
application/json
{
  • "language": "english",
  • "quoteId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

remove favorite quotes

Remove a quote to the user's favorite quotes.

Rate limit: This operation can be called up to 50 times every 30 minutes for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

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" "viossa_njutro"
required
string or number

Responses

Request samples

Content type
application/json
{
  • "language": "english",
  • "quoteId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get profile

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.

path Parameters
uidOrName
required
string
query Parameters
string or boolean
Default: false

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update profile

Update a user's profile.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for users.profiles.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

string or string
string or string
object
integer or number

Responses

Request samples

Content type
application/json
{
  • "bio": "string",
  • "keyboard": "string",
  • "socialProfiles": {},
  • "selectedBadgeId": 0
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get inbox

Gets the user's inbox.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for users.inbox.enabled is true.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update inbox

Updates the user's inbox.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for users.inbox.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

mailIdsToDelete
Array of strings <uuid> non-empty [ items <uuid > ]
mailIdsToMarkRead
Array of strings <uuid> non-empty [ items <uuid > ]

Responses

Request samples

Content type
application/json
{
  • "mailIdsToDelete": [
    ],
  • "mailIdsToMarkRead": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

report user

Report a user.

Required permissions: canReport

Rate limit: This operation can be called up to 50 times every 30 minutes for regular users.

Required configuration: This operation can only be called if the configuration for quotes.reporting.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

uid
required
string
reason
required
string
Enum: "Inappropriate name" "Inappropriate bio" "Inappropriate social links" "Suspected cheating"
string or string
captcha
required
string

Responses

Request samples

Content type
application/json
{
  • "uid": "string",
  • "reason": "Inappropriate name",
  • "comment": "string",
  • "captcha": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

send verification email

Send a verification email.

Rate limit: This operation can be called up to 1 times every 15 minutes for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

send forgot password email

Send a forgot password email.

Rate limit: This operation can be called up to 1 times per minute for regular users.

Request Body schema: application/json

Body

captcha
required
string
email
required
string <email>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "string"
}

revoke all tokens

Revoke all tokens for the current user.

Rate limit: This operation can be called up to 10 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

get test activity

Get user's test activity.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get current test activity

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.

Authorizations:
BearerAuthApeKey

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get streak

Get user's streak data.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuthApeKey

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

User configs

User specific configs like test settings, theme or tags.

get config

Get config of the current user.

Rate limit: This operation can be called up to 120 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update config

Update the config of the current user. Only provided values will be updated while the missing values will be unchanged.

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

theme
string
Enum: "8008" "80s_after_dark" "9009" "aether" "alduin" "alpine" "anti_hero" "arch" "aurora" "beach" "bento" "bingsu" "bliss" "blue_dolphin" "blueberry_dark" "blueberry_light" "botanical" "bouquet" "breeze" "bushido" "cafe" "camping" "carbon" "catppuccin" "chaos_theory" "cheesecake" "cherry_blossom" "comfy" "copper" "creamsicle" "cy_red" "cyberspace" "dark" "dark_magic_girl" "dark_note" "darling" "deku" "desert_oasis" "dev" "diner" "dino" "discord" "dmg" "dollar" "dots" "dracula" "drowning" "dualshot" "earthsong" "everblush" "evil_eye" "ez_mode" "fire" "fledgling" "fleuriste" "floret" "froyo" "frozen_llama" "fruit_chew" "fundamentals" "future_funk" "github" "godspeed" "graen" "grand_prix" "grape" "gruvbox_dark" "gruvbox_light" "hammerhead" "hanok" "hedge" "honey" "horizon" "husqy" "iceberg_dark" "iceberg_light" "incognito" "ishtar" "iv_clover" "iv_spade" "joker" "laser" "lavender" "leather" "lil_dragon" "lilac_mist" "lime" "luna" "macroblank" "magic_girl" "mashu" "matcha_moccha" "material" "matrix" "menthol" "metaverse" "metropolis" "mexican" "miami" "miami_nights" "midnight" "milkshake" "mint" "mizu" "modern_dolch" "modern_dolch_light" "modern_ink" "monokai" "moonlight" "mountain" "mr_sleeves" "ms_cupcakes" "muted" "nautilus" "nebula" "night_runner" "nord" "nord_light" "norse" "oblivion" "olive" "olivia" "onedark" "our_theme" "paper" "passion_fruit" "pastel" "peach_blossom" "peaches" "phantom" "pink_lemonade" "pulse" "purpleish" "rainbow_trail" "red_dragon" "red_samurai" "repose_dark" "repose_light" "retro" "retrocast" "rgb" "rose_pine" "rose_pine_dawn" "rose_pine_moon" "rudy" "ryujinscales" "serika" "serika_dark" "sewing_tin" "sewing_tin_light" "shadow" "shoko" "slambook" "snes" "soaring_skies" "solarized_dark" "solarized_light" "solarized_osaka" "sonokai" "stealth" "strawberry" "striker" "suisei" "sunset" "superuser" "sweden" "tangerine" "taro" "terminal" "terra" "terrazzo" "terror_below" "tiramisu" "trackday" "trance" "tron_orange" "vaporwave" "vesper" "viridescent" "voc" "vscode" "watermelon" "wavez" "witch_girl"
themeLight
string
Enum: "8008" "80s_after_dark" "9009" "aether" "alduin" "alpine" "anti_hero" "arch" "aurora" "beach" "bento" "bingsu" "bliss" "blue_dolphin" "blueberry_dark" "blueberry_light" "botanical" "bouquet" "breeze" "bushido" "cafe" "camping" "carbon" "catppuccin" "chaos_theory" "cheesecake" "cherry_blossom" "comfy" "copper" "creamsicle" "cy_red" "cyberspace" "dark" "dark_magic_girl" "dark_note" "darling" "deku" "desert_oasis" "dev" "diner" "dino" "discord" "dmg" "dollar" "dots" "dracula" "drowning" "dualshot" "earthsong" "everblush" "evil_eye" "ez_mode" "fire" "fledgling" "fleuriste" "floret" "froyo" "frozen_llama" "fruit_chew" "fundamentals" "future_funk" "github" "godspeed" "graen" "grand_prix" "grape" "gruvbox_dark" "gruvbox_light" "hammerhead" "hanok" "hedge" "honey" "horizon" "husqy" "iceberg_dark" "iceberg_light" "incognito" "ishtar" "iv_clover" "iv_spade" "joker" "laser" "lavender" "leather" "lil_dragon" "lilac_mist" "lime" "luna" "macroblank" "magic_girl" "mashu" "matcha_moccha" "material" "matrix" "menthol" "metaverse" "metropolis" "mexican" "miami" "miami_nights" "midnight" "milkshake" "mint" "mizu" "modern_dolch" "modern_dolch_light" "modern_ink" "monokai" "moonlight" "mountain" "mr_sleeves" "ms_cupcakes" "muted" "nautilus" "nebula" "night_runner" "nord" "nord_light" "norse" "oblivion" "olive" "olivia" "onedark" "our_theme" "paper" "passion_fruit" "pastel" "peach_blossom" "peaches" "phantom" "pink_lemonade" "pulse" "purpleish" "rainbow_trail" "red_dragon" "red_samurai" "repose_dark" "repose_light" "retro" "retrocast" "rgb" "rose_pine" "rose_pine_dawn" "rose_pine_moon" "rudy" "ryujinscales" "serika" "serika_dark" "sewing_tin" "sewing_tin_light" "shadow" "shoko" "slambook" "snes" "soaring_skies" "solarized_dark" "solarized_light" "solarized_osaka" "sonokai" "stealth" "strawberry" "striker" "suisei" "sunset" "superuser" "sweden" "tangerine" "taro" "terminal" "terra" "terrazzo" "terror_below" "tiramisu" "trackday" "trance" "tron_orange" "vaporwave" "vesper" "viridescent" "voc" "vscode" "watermelon" "wavez" "witch_girl"
themeDark
string
Enum: "8008" "80s_after_dark" "9009" "aether" "alduin" "alpine" "anti_hero" "arch" "aurora" "beach" "bento" "bingsu" "bliss" "blue_dolphin" "blueberry_dark" "blueberry_light" "botanical" "bouquet" "breeze" "bushido" "cafe" "camping" "carbon" "catppuccin" "chaos_theory" "cheesecake" "cherry_blossom" "comfy" "copper" "creamsicle" "cy_red" "cyberspace" "dark" "dark_magic_girl" "dark_note" "darling" "deku" "desert_oasis" "dev" "diner" "dino" "discord" "dmg" "dollar" "dots" "dracula" "drowning" "dualshot" "earthsong" "everblush" "evil_eye" "ez_mode" "fire" "fledgling" "fleuriste" "floret" "froyo" "frozen_llama" "fruit_chew" "fundamentals" "future_funk" "github" "godspeed" "graen" "grand_prix" "grape" "gruvbox_dark" "gruvbox_light" "hammerhead" "hanok" "hedge" "honey" "horizon" "husqy" "iceberg_dark" "iceberg_light" "incognito" "ishtar" "iv_clover" "iv_spade" "joker" "laser" "lavender" "leather" "lil_dragon" "lilac_mist" "lime" "luna" "macroblank" "magic_girl" "mashu" "matcha_moccha" "material" "matrix" "menthol" "metaverse" "metropolis" "mexican" "miami" "miami_nights" "midnight" "milkshake" "mint" "mizu" "modern_dolch" "modern_dolch_light" "modern_ink" "monokai" "moonlight" "mountain" "mr_sleeves" "ms_cupcakes" "muted" "nautilus" "nebula" "night_runner" "nord" "nord_light" "norse" "oblivion" "olive" "olivia" "onedark" "our_theme" "paper" "passion_fruit" "pastel" "peach_blossom" "peaches" "phantom" "pink_lemonade" "pulse" "purpleish" "rainbow_trail" "red_dragon" "red_samurai" "repose_dark" "repose_light" "retro" "retrocast" "rgb" "rose_pine" "rose_pine_dawn" "rose_pine_moon" "rudy" "ryujinscales" "serika" "serika_dark" "sewing_tin" "sewing_tin_light" "shadow" "shoko" "slambook" "snes" "soaring_skies" "solarized_dark" "solarized_light" "solarized_osaka" "sonokai" "stealth" "strawberry" "striker" "suisei" "sunset" "superuser" "sweden" "tangerine" "taro" "terminal" "terra" "terrazzo" "terror_below" "tiramisu" "trackday" "trance" "tron_orange" "vaporwave" "vesper" "viridescent" "voc" "vscode" "watermelon" "wavez" "witch_girl"
autoSwitchTheme
boolean
customTheme
boolean
customThemeColors
any
favThemes
Array of strings
Items Enum: "8008" "80s_after_dark" "9009" "aether" "alduin" "alpine" "anti_hero" "arch" "aurora" "beach" "bento" "bingsu" "bliss" "blue_dolphin" "blueberry_dark" "blueberry_light" "botanical" "bouquet" "breeze" "bushido" "cafe" "camping" "carbon" "catppuccin" "chaos_theory" "cheesecake" "cherry_blossom" "comfy" "copper" "creamsicle" "cy_red" "cyberspace" "dark" "dark_magic_girl" "dark_note" "darling" "deku" "desert_oasis" "dev" "diner" "dino" "discord" "dmg" "dollar" "dots" "dracula" "drowning" "dualshot" "earthsong" "everblush" "evil_eye" "ez_mode" "fire" "fledgling" "fleuriste" "floret" "froyo" "frozen_llama" "fruit_chew" "fundamentals" "future_funk" "github" "godspeed" "graen" "grand_prix" "grape" "gruvbox_dark" "gruvbox_light" "hammerhead" "hanok" "hedge" "honey" "horizon" "husqy" "iceberg_dark" "iceberg_light" "incognito" "ishtar" "iv_clover" "iv_spade" "joker" "laser" "lavender" "leather" "lil_dragon" "lilac_mist" "lime" "luna" "macroblank" "magic_girl" "mashu" "matcha_moccha" "material" "matrix" "menthol" "metaverse" "metropolis" "mexican" "miami" "miami_nights" "midnight" "milkshake" "mint" "mizu" "modern_dolch" "modern_dolch_light" "modern_ink" "monokai" "moonlight" "mountain" "mr_sleeves" "ms_cupcakes" "muted" "nautilus" "nebula" "night_runner" "nord" "nord_light" "norse" "oblivion" "olive" "olivia" "onedark" "our_theme" "paper" "passion_fruit" "pastel" "peach_blossom" "peaches" "phantom" "pink_lemonade" "pulse" "purpleish" "rainbow_trail" "red_dragon" "red_samurai" "repose_dark" "repose_light" "retro" "retrocast" "rgb" "rose_pine" "rose_pine_dawn" "rose_pine_moon" "rudy" "ryujinscales" "serika" "serika_dark" "sewing_tin" "sewing_tin_light" "shadow" "shoko" "slambook" "snes" "soaring_skies" "solarized_dark" "solarized_light" "solarized_osaka" "sonokai" "stealth" "strawberry" "striker" "suisei" "sunset" "superuser" "sweden" "tangerine" "taro" "terminal" "terra" "terrazzo" "terror_below" "tiramisu" "trackday" "trance" "tron_orange" "vaporwave" "vesper" "viridescent" "voc" "vscode" "watermelon" "wavez" "witch_girl"
showKeyTips
boolean
smoothCaret
string
Enum: "off" "slow" "medium" "fast"
codeUnindentOnBackspace
boolean
quickRestart
string
Enum: "off" "esc" "tab" "enter"
punctuation
boolean
numbers
boolean
words
integer >= 0
time
integer >= 0
mode
string
Enum: "time" "words" "quote" "custom" "zen"
quoteLength
Array of numbers
Items Enum: -3 -2 -1 0 1 2 3
language
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" "viossa_njutro"
fontSize
number > 0
freedomMode
boolean
difficulty
string
Enum: "normal" "expert" "master"
blindMode
boolean
quickEnd
boolean
caretStyle
string
Enum: "off" "default" "block" "outline" "underline" "carrot" "banana"
paceCaretStyle
string
Enum: "off" "default" "block" "outline" "underline" "carrot" "banana"
flipTestColors
boolean
string or string
funbox
Array of strings <= 15 items
Items Enum: "58008" "mirror" "upside_down" "nausea" "round_round_baby" "simon_says" "tts" "choo_choo" "arrows" "rAnDoMcAsE" "capitals" "layout_mirror" "layoutfluid" "earthquake" "space_balls" "gibberish" "ascii" "specials" "plus_one" "plus_zero" "plus_two" "plus_three" "read_ahead_easy" "read_ahead" "read_ahead_hard" "memory" "nospace" "poetry" "wikipedia" "weakspot" "pseudolang" "IPv4" "IPv6" "binary" "hexadecimal" "zipf" "morse" "crt" "backwards" "ddoouubblleedd" "instant_messaging" "underscore_spaces" "ALL_CAPS" "polyglot" "asl" "no_quit"
confidenceMode
string
Enum: "off" "on" "max"
indicateTypos
string
Enum: "off" "below" "replace"
timerStyle
string
Enum: "off" "bar" "text" "mini"
liveSpeedStyle
string
Enum: "off" "text" "mini"
liveAccStyle
string
Enum: "off" "text" "mini"
liveBurstStyle
string
Enum: "off" "text" "mini"
colorfulMode
boolean
randomTheme
string
Enum: "off" "on" "fav" "light" "dark" "custom"
timerColor
string
Enum: "black" "sub" "text" "main"
timerOpacity
string
Enum: "0.25" "0.5" "0.75" "1"
stopOnError
string
Enum: "off" "word" "letter"
showAllLines
boolean
keymapMode
string
Enum: "off" "static" "react" "next"
keymapStyle
string
Enum: "staggered" "alice" "matrix" "split" "split_matrix" "steno" "steno_matrix"
keymapLegendStyle
string
Enum: "lowercase" "uppercase" "blank" "dynamic"
string or string
keymapShowTopRow
string
Enum: "always" "layout" "never"
keymapSize
number decimal places <= 1 [ 0.5 .. 3.5 ]
fontFamily
string <= 50 characters ^[a-zA-Z0-9_\-+.]+$
smoothLineScroll
boolean
alwaysShowDecimalPlaces
boolean
alwaysShowWordsHistory
boolean
singleListCommandLine
string
Enum: "manual" "on"
capsLockWarning
boolean
playSoundOnError
string
Enum: "off" "1" "2" "3" "4"
playSoundOnClick
string
Enum: "off" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15"
soundVolume
number [ 0 .. 1 ]
startGraphsAtZero
boolean
showOutOfFocusWarning
boolean
paceCaret
string
Enum: "off" "average" "pb" "tagPb" "last" "custom" "daily"
paceCaretCustomSpeed
number >= 0
repeatedPace
boolean
accountChart
any
minWpm
string
Enum: "off" "custom"
minWpmCustomSpeed
number >= 0
highlightMode
string
Enum: "off" "letter" "word" "next_word" "next_two_words" "next_three_words"
tapeMode
string
Enum: "off" "letter" "word"
tapeMargin
number [ 10 .. 90 ]
typingSpeedUnit
string
Enum: "wpm" "cpm" "wps" "cps" "wph"
ads
string
Enum: "off" "result" "on" "sellout"
hideExtraLetters
boolean
strictSpace
boolean
minAcc
string
Enum: "off" "custom"
minAccCustom
number [ 0 .. 100 ]
monkey
boolean
repeatQuotes
string
Enum: "off" "typing"
oppositeShiftMode
string
Enum: "off" "on" "keymap"
string or string
customBackgroundSize
string
Enum: "cover" "contain" "max"
customBackgroundFilter
any
customLayoutfluid
Array of strings [ 1 .. 15 ] items
Items Enum: "qwerty" "dvorak" "colemak" "colemak_wide" "colemak_dh" "colemak_dh_iso" "colemak_dh_wide" "colemak_dh_iso_wide" "colemak_dhk" "colemak_dh_matrix" "colemak_dhk_iso" "colemak_dhv" "qwertz" "swiss_german" "swiss_french" "workman" "prog_workman" "turkish_q" "turkish_f" "turkish_e" "MTGAP_ASRT" "norman" "halmak" "QGMLWB" "QGMLWY" "qwpr" "uk_qwerty" "spanish_qwerty" "italian_qwerty" "latam_qwerty" "prog_dvorak" "prog_dvorak_prime" "german_dvorak" "german_dvorak_imp" "spanish_dvorak" "swedish_colemak" "swedish_dvorak" "dvorak_L" "dvorak_R" "dvorak_fr" "azerty" "bepo" "bepo_AFNOR" "alpha" "handsdown" "hungarian" "handsdown_alt" "handsdown_promethium" "typehack" "MTGAP" "MTGAP_full" "ina" "soul" "niro" "mongolian" "JCUKEN" "Diktor" "Diktor_VoronovMod" "Redaktor" "JUIYAF" "Zubachev" "ISRT" "ISRT_Angle" "colemak_Qix" "colemak_Qi" "colemaQ" "colemaQ_F" "engram" "engrammer" "semimak" "semimak_jq" "semimak_jqc" "canary" "canary_matrix" "japanese_hiragana" "boo" "boo_mangle" "APT" "APT_angle" "middlemak" "middlemak-nh" "hindi_inscript" "thai_kedmanee" "thai_pattachote" "thai_manoonchai" "persian_standard" "persian_farsi" "arabic_101" "arabic_102" "arabic_mac" "hebrew" "urdu_phonetic" "brasileiro_nativo" "Foalmak" "quartz" "arensito" "ARTS" "beakl_15" "beakl_19" "beakl_19_bis" "capewell_dvorak" "colman" "heart" "klauser" "oneproduct" "pine" "real" "rolll" "stndc" "three" "uciea" "asset" "dwarf" "flaw" "whorf" "whorf6" "whorfmax" "whorfmax_ortho" "sertain" "ctgap" "octa8" "polish_programmers" "bulgarian" "bulgarian_phonetic_traditional" "belarusian" "ukrainian" "russian" "neo" "bone" "AdNW" "mine" "noted" "koy" "3l" "korean" "ekverto_b" "nerps" "sturdy_angle_ansi" "sturdy_angle_iso" "sturdy_ortho" "ABNT2" "HiYou" "xenia" "xenia_alt" "burmese" "gallium" "gallium_angle" "gallium_v2" "gallium_v2_matrix" "maya" "gallaya_angle_ansi" "gallaya_angle_iso" "gallaya_matrix" "nila" "minimak_4k" "minimak_8k" "minimak_12k" "optimot" "norwegian_qwerty" "portuguese_pt_qwerty_iso" "portuguese_pt_qwerty_ansi" "swedish_qwerty" "danish_qwerty" "noctum" "graphite" "graphite_angle" "graphite_angle_vc" "graphite_angle_kp" "graphite_matrix" "macedonian" "UGJRMV" "pashto" "ORNATE" "estonian" "stronk" "dhorf" "recurva" "seht-drai" "ints" "rollla" "wreathy" "saiga" "saiga-e" "krai" "mir" "ergol" "cascade" "vylet" "hyperroll" "romak" "scythe" "inqwerted" "rain" "night" "whix2" "haruka" "kuntum" "anishtro" "Kuntem" "BEAKL_Zi" "snorkle" "MALTRON" "PRSTEN" "RSTHD" "dusk" "zenith" "focal" "panini" "panini_wide" "ergopti" "sword" "opy" "tarmak_1" "tarmak_2" "tarmak_3" "tarmak_4"
monkeyPowerLevel
string
Enum: "off" "1" "2" "3" "4"
minBurst
string
Enum: "off" "fixed" "flex"
minBurstCustomSpeed
number >= 0
burstHeatmap
boolean
britishEnglish
boolean
lazyMode
boolean
showAverage
string
Enum: "off" "speed" "acc" "both"
number or number
customPolyglot
Array of strings non-empty
Items 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" "viossa_njutro"

Responses

Request samples

Content type
application/json
{
  • "theme": "8008",
  • "themeLight": "8008",
  • "themeDark": "8008",
  • "autoSwitchTheme": true,
  • "customTheme": true,
  • "customThemeColors": null,
  • "favThemes": [
    ],
  • "showKeyTips": true,
  • "smoothCaret": "off",
  • "codeUnindentOnBackspace": true,
  • "quickRestart": "off",
  • "punctuation": true,
  • "numbers": true,
  • "words": 0,
  • "time": 0,
  • "mode": "time",
  • "quoteLength": [
    ],
  • "language": "english",
  • "fontSize": 0,
  • "freedomMode": true,
  • "difficulty": "normal",
  • "blindMode": true,
  • "quickEnd": true,
  • "caretStyle": "off",
  • "paceCaretStyle": "off",
  • "flipTestColors": true,
  • "layout": "default",
  • "funbox": [
    ],
  • "confidenceMode": "off",
  • "indicateTypos": "off",
  • "timerStyle": "off",
  • "liveSpeedStyle": "off",
  • "liveAccStyle": "off",
  • "liveBurstStyle": "off",
  • "colorfulMode": true,
  • "randomTheme": "off",
  • "timerColor": "black",
  • "timerOpacity": "0.25",
  • "stopOnError": "off",
  • "showAllLines": true,
  • "keymapMode": "off",
  • "keymapStyle": "staggered",
  • "keymapLegendStyle": "lowercase",
  • "keymapLayout": "overrideSync",
  • "keymapShowTopRow": "always",
  • "keymapSize": 0.5,
  • "fontFamily": "string",
  • "smoothLineScroll": true,
  • "alwaysShowDecimalPlaces": true,
  • "alwaysShowWordsHistory": true,
  • "singleListCommandLine": "manual",
  • "capsLockWarning": true,
  • "playSoundOnError": "off",
  • "playSoundOnClick": "off",
  • "soundVolume": 1,
  • "startGraphsAtZero": true,
  • "showOutOfFocusWarning": true,
  • "paceCaret": "off",
  • "paceCaretCustomSpeed": 0,
  • "repeatedPace": true,
  • "accountChart": null,
  • "minWpm": "off",
  • "minWpmCustomSpeed": 0,
  • "highlightMode": "off",
  • "tapeMode": "off",
  • "tapeMargin": 10,
  • "typingSpeedUnit": "wpm",
  • "ads": "off",
  • "hideExtraLetters": true,
  • "strictSpace": true,
  • "minAcc": "off",
  • "minAccCustom": 100,
  • "monkey": true,
  • "repeatQuotes": "off",
  • "oppositeShiftMode": "off",
  • "customBackground": "http://example.com",
  • "customBackgroundSize": "cover",
  • "customBackgroundFilter": null,
  • "customLayoutfluid": [
    ],
  • "monkeyPowerLevel": "off",
  • "minBurst": "off",
  • "minBurstCustomSpeed": 0,
  • "burstHeatmap": true,
  • "britishEnglish": true,
  • "lazyMode": true,
  • "showAverage": "off",
  • "maxLineWidth": 20,
  • "customPolyglot": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

delete config

Delete/reset the config for the current user.

Rate limit: This operation can be called up to 120 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

User presets

User specific configuration presets.

get presets

Get presets of the current user.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

add preset

Add a new preset for the current user.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

name
required
string <= 16 characters ^[0-9a-zA-Z_-]+$
settingGroups
Array of strings or null non-empty
Enum: "test" "behavior" "input" "sound" "caret" "appearance" "theme" "hideElements" "ads" "hidden"
required
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "settingGroups": [
    ],
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update preset

Update an existing preset for the current user.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

_id
required
string^[a-zA-Z0-9_]+$
name
required
string <= 16 characters ^[0-9a-zA-Z_-]+$
settingGroups
Array of strings or null non-empty
Enum: "test" "behavior" "input" "sound" "caret" "appearance" "theme" "hideElements" "ads" "hidden"
object

Responses

Request samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "settingGroups": [
    ],
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

delete preset

Delete preset by id.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuth
path Parameters
presetId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Test results

User test results

get results

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.

Authorizations:
BearerAuthApeKey
query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

add result

Add a test result for the current user.

Rate limit: This operation can be called up to 300 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for results.savingEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

required
object

Responses

Request samples

Content type
application/json
{
  • "result": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

delete all results

Delete all results for the current user.

Rate limit: This operation can be called up to 10 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

get result by id

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.

Authorizations:
BearerAuthApeKey
path Parameters
resultId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update result tags

Labels a result with the specified tags.

Rate limit: This operation can be called up to 100 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

tagIds
required
Array of strings[ items^[a-zA-Z0-9_]+$ ]
resultId
required
string^[a-zA-Z0-9_]+$

Responses

Request samples

Content type
application/json
{
  • "tagIds": [
    ],
  • "resultId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get last result

Gets a user's last saved result.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Authorizations:
BearerAuthApeKey

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

Ape Keys

Ape keys provide access to certain API endpoints.

get ape keys

Get ape keys of the current user.

Required permissions: canManageApeKeys

Rate limit: This operation can be called up to 120 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for apeKeys.endpointsEnabled is true.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

add ape key

Add an ape key for the current user.

Required permissions: canManageApeKeys

Rate limit: This operation can be called up to 15 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for apeKeys.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

name
required
string <= 20 characters ^[0-9a-zA-Z_.-]+$
enabled
required
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update ape key

Update an existing ape key for the current user.

Required permissions: canManageApeKeys

Rate limit: This operation can be called up to 15 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for apeKeys.endpointsEnabled is true.

Authorizations:
BearerAuth
path Parameters
apeKeyId
required
string^[a-zA-Z0-9_]+$
Request Body schema: application/json

Body

name
string <= 20 characters ^[0-9a-zA-Z_.-]+$
enabled
boolean

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "message": "string"
}

delete ape key

Delete ape key by id.

Required permissions: canManageApeKeys

Rate limit: This operation can be called up to 15 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for apeKeys.endpointsEnabled is true.

Authorizations:
BearerAuth
path Parameters
apeKeyId
required
string^[a-zA-Z0-9_]+$

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Public

Public endpoints such as typing stats.

get speed histogram

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.

query Parameters
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" "viossa_njutro"
mode
required
string
Enum: "time" "words" "quote" "custom" "zen"
required
(string or number) or string or string

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get typing stats

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.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

Leaderboards

All-time and daily leaderboards of the fastest typers.

get leaderboard

Get all-time leaderboard.

Rate limit: This operation can be called up to 500 times per hour for regular users.

query Parameters
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" "viossa_njutro"
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

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get leaderboard rank

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.

Authorizations:
BearerAuthApeKey
query Parameters
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" "viossa_njutro"
mode
required
string
Enum: "time" "words" "quote" "custom" "zen"
required
(string or number) or string or string

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get daily leaderboard

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.

query Parameters
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" "viossa_njutro"
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

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get daily leaderboard rank

Get the rank of the current user on the 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.

Authorizations:
BearerAuth
query Parameters
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" "viossa_njutro"
mode
required
string
Enum: "time" "words" "quote" "custom" "zen"
required
(string or number) or string or string
daysBefore
number
Value: 1

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get weekly xp leaderboard

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.

query Parameters
weeksBefore
number
Value: 1
page
integer [ 0 .. 9007199254740991 ]
Default: 0
pageSize
integer ( 0 .. 200 ]
Default: 50

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

get weekly xp leaderboard rank

Get the rank of the current user on the 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.

Authorizations:
BearerAuth
query Parameters
weeksBefore
number
Value: 1

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

PSAs

Public service announcements.

get psas

Get list of public service announcements.

Rate limit: This operation can be called up to 60 times per minute for regular users.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

Quotes

Quote ratings and new quote submissions

get quote submissions

Get list of quote submissions.

Required permissions: quoteMod

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": [
    ]
}

submit quote

Add a quote submission.

Rate limit: This operation can be called up to 60 times per hour for regular users.

Required configuration: This operation can only be called if the configuration for quotes.submissionsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

text
required
string >= 60 characters
source
required
string
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" "viossa_njutro"
captcha
required
string

Responses

Request samples

Content type
application/json
{
  • "text": "stringstringstringstringstringstringstringstringstringstring",
  • "source": "string",
  • "language": "english",
  • "captcha": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

is submission enabled

Check if submissions are enabled.

Rate limit: This operation can be called up to 60 times per minute for regular users.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

submit quote

Add a quote submission.

Required permissions: quoteMod

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

quoteId
required
string^[a-zA-Z0-9_]+$
editText
string or null
editSource
string or null

Responses

Request samples

Content type
application/json
{
  • "quoteId": "string",
  • "editText": "string",
  • "editSource": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

reject quote

Reject a quote submission.

Required permissions: quoteMod

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

quoteId
required
string^[a-zA-Z0-9_]+$

Responses

Request samples

Content type
application/json
{
  • "quoteId": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get rating

Get quote rating.

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth
query Parameters
required
integer or string
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" "viossa_njutro"

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

add rating

Add a quote rating.

Rate limit: This operation can be called up to 500 times per hour for regular users.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

required
integer or string
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" "viossa_njutro"
rating
required
integer [ 1 .. 5 ]

Responses

Request samples

Content type
application/json
{
  • "quoteId": 0,
  • "language": "english",
  • "rating": 1
}

Response samples

Content type
application/json
{
  • "message": "string"
}

report quote

Report a quote.

Required permissions: canReport

Rate limit: This operation can be called up to 50 times every 30 minutes for regular users.

Required configuration: This operation can only be called if the configuration for quotes.reporting.enabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

required
integer or string
quoteLanguage
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" "viossa_njutro"
reason
required
string
Enum: "Grammatical error" "Duplicate quote" "Inappropriate content" "Low quality content" "Incorrect source"
string or string
captcha
required
string

Responses

Request samples

Content type
application/json
{
  • "quoteId": 0,
  • "quoteLanguage": "english",
  • "reason": "Grammatical error",
  • "comment": "string",
  • "captcha": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Admin

Various administrative endpoints. Require user to have admin permissions.

test permission

Check for admin permission for the current user.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

toggle user ban

Ban an unbanned user or unban a banned user.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

uid
required
string^[a-zA-Z0-9_]+$

Responses

Request samples

Content type
application/json
{
  • "uid": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

clear streak hour offset

Clear the streak hour offset for a user.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

uid
required
string^[a-zA-Z0-9_]+$

Responses

Request samples

Content type
application/json
{
  • "uid": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

accept reports

Accept one or many reports.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

required
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "reports": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

reject reports

Reject one or many reports.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

required
Array of objects non-empty

Responses

Request samples

Content type
application/json
{
  • "reports": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

send forgot password email

Send a forgot password email to the given user email.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Required configuration: This operation can only be called if the configuration for admin.endpointsEnabled is true.

Authorizations:
BearerAuth
Request Body schema: application/json

Body

email
required
string <email>

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "message": "string"
}

Server configuration

Server configuration

get configuration

Get server configuration.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": {
    }
}

update configuration

Update the server configuration. Only provided values will be updated while the missing values will be unchanged.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Request Body schema: application/json

Body

required
object

Responses

Request samples

Content type
application/json
{
  • "configuration": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

get configuration schema

Get schema definition of the server configuration.

Required permissions: admin

Rate limit: This operation can be called up to 1 times every 5 seconds for regular users.

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "data": { }
}

Development

Development related endpoints. Only available on dev environment

generate data

Generate test results for the given user.

Request Body schema: application/json

Body

username
required
string
createUser
boolean

If true create user with @example.com and password password. If false user has to exist.

firstTestTimestamp
integer >= 0
lastTestTimestamp
integer >= 0
minTestsPerDay
integer >= 0
maxTestsPerDay
integer >= 0

Responses

Request samples

Content type
application/json
{
  • "username": "string",
  • "createUser": true,
  • "firstTestTimestamp": 0,
  • "lastTestTimestamp": 0,
  • "minTestsPerDay": 0,
  • "maxTestsPerDay": 0
}

Response samples

Content type
application/json
{}

Webhooks

Endpoints for incoming webhooks.

Github release

Announce github release.

Rate limit: This operation can be called up to 1 times per second for regular users.

Authorizations:
BearerAuth
header Parameters
x-hub-signature-256
required
string
Request Body schema: application/json

Body

required
string or string
object

Responses

Request samples

Content type
application/json
{
  • "action": "published",
  • "release": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}