Skip to main content

Make Your First Request

You have a key — let's make a call. Here's a request that fetches a citizen's profile:

GET /v2/users/dymerz HTTP/1.1
Host: API_HOST
x-api-key: YOUR_API_KEY
{
"success": true,
"message": "ok",
"updatedAt": "2026-05-31T10:00:00.000Z",
"expiresAt": "2026-05-31T11:00:00.000Z",
"data": {
"profile": {
"handle": "Dymerz",
"display": "[ΩP] Dymerz",
"enlisted": "2016-08-19T00:00:00.000000",
"fluency": ["French", "English"]
},
"organization": {
"name": "Protectorat (EU/QC/974/PC)",
"sid": "PROTECTORA",
"rank": "Membre"
}
}
}

This request uses the smart cache by default — no quota is consumed. The updatedAt field tells you when the data was last scraped from the RSI website, and expiresAt tells you when it might be automatically re-scraped next.


Understanding the Response

Every response uses the same JSON envelope, whether it succeeds or fails.

Success:

FieldTypeDescription
successbooleanAlways true
messagestringHuman-readable status
updatedAtstringWhen the data was last scraped from RSI (ISO 8601)
expiresAtstringWhen the cache may next be re-scraped (ISO 8601)
dataanyThe response payload

Error:

{
"success": false,
"message": "Unauthorized",
"code": 401
}
FieldTypeDescription
successbooleanAlways false
messagestringHuman-readable error description
codenumberHTTP status code
warning

Always check success and the HTTP status code.

A 200 OK response can still be a logical error if success is false. Do not branch on message — its wording may change without notice.

For the full response format reference, see Response Format.


Next Steps

You're making requests — here's where to go next:

  • Response Format — full envelope reference, including what updatedAt/expiresAt mean
  • Data Freshness & Caching — when to use ?refresh=true and how the smart cache works
  • API Reference — every endpoint with parameters and response schemas
  • Common Patterns — ready-to-use recipes for quota checking, org lookups, version polling, and more