FusionAuth doesn’t support uploading a CSV to retrieve last-login timestamps. However, you can do this efficiently with the Search for Users API and return lastLoginInstant for many users at once.
How to do it (batch via API)
-
Use the User Search endpoint
POST /api/user/search (set your X-FusionAuth-TenantId and Authorization headers). -
Send an Elasticsearch query using terms to match a batch of emails/usernames, and read lastLoginInstant from each returned user:
{
"search": {
"query": "{\"terms\":{\"email\":[\"a@example.com\",\"b@example.com\",\"c@example.com\"]}}",
"numberOfResults": 500,
"startRow": 0
}
}
- Swap email for username if that’s what you have.
- If your list is large, chunk it (e.g., 200–500 logins per request) and paginate with startRow / numberOfResults.
- (Optional) Filter by last-login date with a range query on lastLoginInstant:
{
"search": {
"query": "{\"range\":{\"lastLoginInstant\":{\"gte\":\"2025-10-01T00:00:00Z\"}}}"
}
}
You can also query by epoch millis if you prefer.
- Map results
Each user object includes lastLoginInstant (epoch millis). Convert to your desired timezone/format in your script and write out a CSV.
Tips
- If you need all users in a tenant (not just your list), you can search with a wildcard or a match-all query and page through results, then filter locally.
- For ongoing metrics, consider subscribing to user.login.success webhooks and recording last logins as they happen.
Docs:
- Search for Users API (Elasticsearch): https://fusionauth.io/docs/apis/users#elasticsearch-search-engine