Data Namespace
What the library knows about the signed-in session: who it is, until when, its status and the last error. Read-only. Empty until a sign-in succeeds.
One-screen dump
Every accessor for the current session, in all three bindings. Switch the language in the top bar to flip the entire page; the dump and the master reference below re-key to the active language.
#include <iostream>#include "Atlas.h" int main() { Atlas::API_KEY = "YOUR_API_KEY"; Atlas::Startup(); if (!Atlas::License::Login("ATLAS-A9F2K-4RMXM")) { std::cerr << Atlas::Data::GetErrorMessage(); return 1; } std::cout << "License " << Atlas::Data::GetLicense() << '\n'; std::cout << "Username " << Atlas::Data::GetUsername() << '\n'; std::cout << "Email " << Atlas::Data::GetEmail() << '\n'; std::cout << "Password " << Atlas::Data::GetPassword() << '\n'; std::cout << "IP " << Atlas::Data::GetIP() << '\n'; std::cout << "HWID " << Atlas::Data::GetHWID() << '\n'; std::cout << "Device " << Atlas::Data::GetDevice() << '\n'; std::cout << "Note " << Atlas::Data::GetNote() << '\n'; std::cout << "FirstSeen " << Atlas::Data::GetFirstSeenDate() << '\n'; std::cout << "LastSeen " << Atlas::Data::GetLastSeenDate() << '\n'; std::cout << "UserId " << Atlas::Data::GetUserId() << '\n'; std::cout << "Level " << Atlas::Data::GetLevel() << '\n'; std::cout << "Expiry " << Atlas::Data::GetExpiry() << '\n'; std::cout << "DaysLeft " << Atlas::Data::GetDaysRemaining() << '\n'; std::cout << "Lifetime " << Atlas::Data::IsLifetime() << '\n'; std::cout << "Expiring " << Atlas::Data::IsExpiringSoon() << '\n'; std::cout << "Authed " << Atlas::Data::IsAuthenticated() << '\n'; std::cout << "Banned " << Atlas::Data::IsBanned() << '\n'; std::cout << "Active " << Atlas::Data::GetActiveUserCount()<< '\n'; std::cout << "Total " << Atlas::Data::GetUserCount() << '\n'; return 0;}Guarding a sensitive action
IsAuthenticated and IsBanned are the library's last known state. They answer instantly and can be a few seconds old. For an answer straight from the server, call Network::CheckAuthentication.
// Canonical pattern: gate a sensitive action on a live, valid session.if (!Atlas::Data::IsAuthenticated()) { return UI::ShowError("Session expired. Please sign in again.");}if (Atlas::Data::IsBanned()) { return UI::LockAccount("This account has been suspended.");}if (Atlas::Data::IsExpiringSoon(3)) { UI::ShowBanner("Subscription expires in " + std::to_string(Atlas::Data::GetDaysRemaining()) + " days.");}ExecuteOrder();Identity
Who the current session is. Username, email, password return "" on license-only sessions. GetNote() returns "None" when no note is set.
GetLicensestd::stringalwaysGetUsernamestd::stringaccount onlyGetEmailstd::stringaccount onlyGetPasswordstd::stringaccount onlyGetIPstd::stringalwaysGetHWIDstd::stringalwaysGetDevicestd::stringalwaysGetNotestd::stringwhen setGetFirstSeenDatestd::stringalwaysGetLastSeenDatestd::stringalwaysGetUserIdintaccount onlyGetLevelintalwaysExpiry
When the license ends. GetExpiry() is a "DD-MM-YYYY" date - valid through the end of that day - or "Never" when there is no expiry, in every binding. The C++ LoginResult.expiry uses the same date but is "" when there is none; in JS and Python it holds the same string as GetExpiry().
GetExpirystd::stringalwaysGetDaysRemainingintalwaysIsLifetimeboolalwaysIsExpiringSoonboolalwaysStatus
Synchronous verdicts. The SDK heartbeat refreshes these in the background; the accessors return the latest cached value.
IsAuthenticatedboolalwaysIsBannedboolalwaysErrors
The last failing call sets the error string. Subsequent successful calls overwrite it — read GetErrorMessage immediately after the call that might have set one.
GetErrorMessagestd::stringwhen last call set oneHasErrorboolalwaysClearErrorvoidalwaysApp-wide stats
Counts that mirror your dashboard. Both fields return string across all three bindings for ABI parity — parse with std::stoi, Number(), or int() if you need to compare.
GetActiveUserCountstd::stringalwaysGetUserCountstd::stringalways