Skip to main content

Users

Get User Data

Retrieve complete user profile and settings.
object

Create User

Register a new user account.
string
required
Desired username (1-16 characters, alphanumeric, underscores, hyphens, dots)
string
User’s email address
string
required
Google reCAPTCHA token

Get User Profile

Retrieve public profile of any user.
string
required
Username or user ID
boolean
default:"false"
Whether the path parameter is a UID (true) or username (false)

Update Username

Change username (once per 30 days).
Requires fresh token (issued within last 60 seconds). Limited to once per 30 days.

Results

Submit Test Result

Submit a completed typing test result.
object
required
object
Results undergo anticheat validation. Invalid results (hash mismatch, suspicious timing, bot detection) will be rejected.

Get Results

Retrieve paginated test results.
number
default:"50"
Number of results to return (max 1000)
number
default:"0"
Offset for pagination
number
Filter results on or after this timestamp
Premium users can retrieve more results than regular users. Limits are configurable per deployment.

Get Result by ID

Retrieve a specific result by its ID.

Delete All Results

Permanently delete all test results.
Requires fresh token. This action is irreversible.

Leaderboards

Get All-Time Leaderboard

Retrieve global leaderboard entries.
string
required
Language code (e.g., “english”)
string
required
Test mode: “time” or “words”
string
required
Mode variant: “15”, “60” for time; “10”, “25”, “50”, “100” for words
number
default:"0"
Page number (0-indexed)
number
default:"50"
Results per page (10-200)
boolean
default:"false"
Show only friends (requires authentication)
object

Get Leaderboard Rank

Get current user’s rank on leaderboard.

Get Daily Leaderboard

Retrieve today’s daily leaderboard.
number
default:"0"
Get leaderboard from N days ago (0 = today, 1 = yesterday)

Get Weekly XP Leaderboard

Retrieve weekly XP leaderboard.

Configs

Get User Configuration

Retrieve user’s configuration settings.
object
User’s configuration object including theme, test settings, behavior preferences, etc.

Update Configuration

Update user configuration (partial update).
Only provided fields are updated. Missing fields remain unchanged.

Quotes

Get Quote Submissions

Retrieve pending quote submissions (moderators only).
Requires quoteMod permission.

Submit Quote

Submit a new quote for approval.
string
required
Quote text (minimum 60 characters)
string
required
Quote author or source
string
required
Language code
string
required
reCAPTCHA token

Report Quote

Report a problematic quote.

Presets

Get Presets

Retrieve user’s test presets.

Create Preset

Create a new test preset.

Update Preset

Update an existing preset.

Delete Preset

Delete a preset by ID.

ApeKeys

List ApeKeys

Retrieve all API keys for the current user.

Generate ApeKey

Create a new API key.

Update ApeKey

Modify an existing API key.

Delete ApeKey

Delete an API key.

Tags

Get Tags

Retrieve all tags for the current user.
array
Array of tag objects with ID, name, and personal bests

Create Tag

Create a new tag.
string
required
Tag name (1-16 characters)
object
Created tag object with _id and name

Update Tag

Update an existing tag’s name.
string
required
Tag ID to update
string
required
New tag name (1-16 characters)

Delete Tag

Delete a tag by ID.
string
required
Tag ID to delete

Delete Tag Personal Best

Clear personal bests for a specific tag.
string
required
Tag ID to clear personal bests for

Custom Themes

Get Custom Themes

Retrieve all custom themes for the current user.
array
Array of custom theme objects with colors

Create Custom Theme

Create a new custom theme.
string
required
Theme name (1-16 characters)
object
required
object
Created theme with _id and name

Update Custom Theme

Update an existing custom theme.
string
required
Theme ID to update
object
required
Theme object with name and colors

Delete Custom Theme

Delete a custom theme.
string
required
Theme ID to delete

Inbox

Get Inbox

Retrieve user’s inbox messages.
object

Update Inbox

Mark messages as read or delete them.
array
Array of message UUIDs to mark as read
array
Array of message UUIDs to delete

Streak

Get Streak

Retrieve user’s streak data.
object

Set Streak Hour Offset

Set the hour offset for streak calculation (can only be set once).
number
required
Hour offset (-11 to 12)
This can only be set once and cannot be changed.

Connections

Get Connections

Retrieve user’s connections (friends).
string
Filter by status: “pending”, “accepted”, “rejected”, “blocked”
string
Filter by type: “incoming”, “outgoing”
array
Array of connection objects

Create Connection

Send a friend request to another user.
string
required
Username of the user to connect with
object
Created connection object with status “pending”

Update Connection

Accept, reject, or block a connection request.
string
required
Connection ID
string
required
New status: “accepted”, “rejected”, or “blocked”

Delete Connection

Remove a connection.
string
required
Connection ID to delete

Discord Integration

Get the OAuth link to start Discord integration.
object
string
Discord OAuth URL to redirect user to
Link a Discord account after OAuth callback.
string
required
Token type from Discord OAuth
string
required
Access token from Discord OAuth
string
required
State parameter from OAuth (20 characters)
object
string
Linked Discord user ID
string
Discord avatar URL
Unlink the connected Discord account.

Additional User Endpoints

Get Test Activity

Retrieve complete test activity data (premium feature).
Requires premium subscription.
object
Test activity data organized by year and day

Update Profile

Update user’s public profile information.
string
User biography
string
Keyboard information
number
ID of badge to display on profile
object
Social media profile usernames
boolean
Whether to show test activity on public profile

Get Favorite Quotes

Retrieve user’s favorite quotes.
object
Favorite quotes organized by language

Add Favorite Quote

Add a quote to favorites.
string
required
Language code
string
required
Quote ID to add to favorites

Remove Favorite Quote

Remove a quote from favorites.
string
required
Language code
string
required
Quote ID to remove from favorites

Error Responses

All endpoints may return these common error responses:

Rate Limits

Endpoints have varying rate limits. Common limits:
  • User endpoints: 30-60 requests per minute
  • Result submission: 500 per day
  • Leaderboards: 60 per minute
  • Config updates: 120 per hour
See Authentication for rate limit details.