Two endpoints: a public name lookup, and the license check used for member zones.
Look up a player name
GET/v1/player/{rankedinId}
Turns a Rankedin ID into the player's name — useful for showing readable names next to the IDs returned by the other endpoints.
Request
curl -H "X-API-Key: your_api_key_here" \
"https://rinpublicapistaging.azurewebsites.net/v1/player/R000006081"Response
{ "name": "Stefan Rankedin Support" }This returns the player's public profile name, the same one shown on the Rankedin website, so it also works for players outside your organization. No other personal data is returned.
Errors
| Code | Status | Cause |
|---|---|---|
rankedin_id_invalid | 400 | The ID is not exactly 10 characters |
player_not_found | 404 | No player with that ID |
rankedin_id_conflict | 409 | More than one record matches the ID — contact Rankedin support |
Check player license status
POST/v1/player/licenses/check
Checks whether players hold a valid license in your organization — for example when a player types their Rankedin ID into your federation's website to unlock a member zone or a sponsor discount.
You can check 1–20 players in a single request.
Request body
| Field | Rules |
|---|---|
rankedinIds | Required. 1–20 Rankedin IDs, as text. Each ID must be exactly 10 characters after trimming. Spaces around an ID are ignored, and letter case does not matter. Duplicates are allowed. |
Request
curl -X POST \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"rankedinIds": ["R000010970", "R000006081"]}' \
"https://rinpublicapistaging.azurewebsites.net/v1/player/licenses/check"Response
{
"results": [
{
"rankedinId": "R000010970",
"licenseStatus": "active",
"licenseType": "Free yearly membership",
"licenseExpires": "2026-09-11"
}
],
"notAvailable": [
{ "rankedinId": "R000006081", "reason": "not_in_organization" }
]
}results[] — players in your organization
| Field | Description |
|---|---|
rankedinId | The ID exactly as you sent it (trimmed) |
licenseStatus | active, expired or none |
licenseType | e.g. Free yearly membership, Season License. null when status is none |
licenseExpires | Expiry date, YYYY-MM-DD. null when no expiry applies |
notAvailable[] — IDs that cannot be served
| Field | Description |
|---|---|
rankedinId | The ID exactly as you sent it (trimmed) |
reason | Always not_in_organization |
Good to know
- Match responses back to your input by
rankedinId, not by position. Every ID you send comes back in exactly one of the two arrays, but the split means the order ofresultsno longer matches the order of your request. Within each array the original relative order is kept, and duplicates are returned as many times as you sent them. - The
rankedinIdis echoed back exactly as you typed it — sendr000010970in lower case and you getr000010970back, even though the lookup itself ignores case. not_in_organizationcovers both "this player is not in your organization" and "this Rankedin ID does not exist" — the API does not tell the two apart.- A player counts as belonging to your organization through a membership or a license record — so an
expiredlicense still appears inresults, not innotAvailable. - No personal data is returned: no name, e-mail, phone or home club. The endpoint only answers the license question.
Errors
| Code | Status | Cause |
|---|---|---|
request_body_invalid | 400 | The body is not valid JSON, or rankedinIds is missing |
rankedin_ids_empty | 400 | rankedinIds is an empty list |
rankedin_id_invalid_length | 400 | One of the IDs is not exactly 10 characters |
rankedin_ids_too_many | 400 | More than 20 IDs in one request |