Rankd for Developers
Checking API…

Users

Look up a user by username

GET/v1/users/by-username/{username}
No API keyRate-limited

The user behind a username: how to get from a Rankd username to a user id. Only discoverable people are found.

Parameters#

Path parameters#

NameTypeDescription
usernamerequiredstringA Rankd username: up to 20 letters, digits and underscores. Case does not matter.
Pattern: ^[A-Za-z0-9_]{1,20}$ · Example: kyle

Try it#

Sends a real request to the production API through this site. No credentials are used, so you see exactly what anyone would.

Request#

curl "https://api.rankdmusic.app/v1/users/by-username/kyle"

Response#

A successful response is { "data": …, "meta": … }. data is a User, and meta is a Meta.

FieldTypeDescription
idalwaysstringThe user’s id.
usernamealwaysstringTheir username.
displayNamestring or nullThe name they show.
biostring or nullTheir bio.
foundingMemberFoundingMember
avatarAssetIdstring or nullTheir profile picture, as an asset id.
avatarUrlstring or nullTheir profile picture’s URL.
isDiscoverablebooleanWhether people who are not signed in can find them.
createdAtstring (date-time) or nullWhen they joined.
updatedAtstring (date-time) or nullWhen their profile last changed.

Responses#

200The user.

Captured from production: GET /v1/users/by-username/kyle

200 response
{
  "data": {
    "id": "usr_01KY0JGXMWTT8H9WFN9RTM5JP9",
    "username": "kyle",
    "displayName": "kyle",
    "bio": "🏴󠁧󠁢󠁳󠁣󠁴󠁿",
    "foundingMember": {
      "number": 2,
      "grantedAt": "2026-09-17T14:44:05.000Z"
    },
    "avatarAssetId": "ast_9E07Q6Q598DXKRQBN0NDSCQYA4",
    "avatarUrl": "https://api.rankdmusic.app/v1/assets/ast_9E07Q6Q598DXKRQBN0NDSCQYA4",
    "isDiscoverable": true,
    "createdAt": "2026-07-20T20:12:20.508Z",
    "updatedAt": "2026-09-29T11:24:06.862Z"
  },
  "meta": {
    "apiVersion": 1,
    "migrationPhase": 3,
    "sourceOfTruth": "per_account"
  }
}
400Not something a Rankd username can be.
400 response
{
  "error": {
    "code": "invalid_username",
    "message": "Invalid username."
  }
}
404No such user, or they are not discoverable.

Captured from production: GET /v1/users/by-username/no_such_person_zz

404 response
{
  "error": {
    "code": "not_found",
    "message": "User not found."
  }
}
429Too many requests this minute. Wait Retry-After seconds, then try again.

Headers: Retry-After Seconds to wait. Always 60.

429 response
{
  "error": "rate limited"
}
↑ ↓ to move↵ to open/ or ⌘K to search