Skip to main content

Your First Request

You have a key — you're ready to make your first request.

Response Format

Success and error responses use different envelopes.

Success

{
"success": true,
"message": "ok",
"updatedAt": "2026-05-31T10:00:00.000Z",
"expiresAt": "2026-05-31T11:00:00.000Z",
"data": {
...
}
}
FieldTypeDescription
successbooleanAlways true for successful responses
messagestringHuman-readable status message
updatedAtstringISO 8601 timestamp of when the data was last scraped from the RSI website
expiresAtstringISO 8601 timestamp after which the cached data may be automatically re-scraped
dataanyThe actual response payload
tip

The Last-Modified and Expires HTTP response headers are also set to the same timestamps in HTTP-date format. Use them for HTTP-level conditional caching, or read updatedAt / expiresAt in the body for application-level freshness checks.

Error

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

Always check success and the HTTP status code to detect errors. Do not rely on message for conditional logic — its content may change without notice.

Example

Fetch a citizen's profile (quota-free by default):

GET API_URL/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"
}
}
}

Next Steps

You're all set! Explore all available endpoints with parameters and response schemas in the API Reference.

For advanced topics such as conditional requests (ETags), see Advanced Features.