Login History

Retrieve a paginated list of recent login attempts for a user profile, including timestamps, IP addresses, device details, and authentication outcomes.

Login History

The Login History endpoint retrieves a structured list of recent login attempts associated with a user's account. Each record includes the timestamp, IP address, device information, geographic location, and whether the attempt was successful and whether multi-factor authentication was used. This endpoint supports date range filtering and pagination, making it suitable for both real-time security monitoring and historical auditing.

Endpoint

GET /netevia/loginHistory

Authentication

Bearer token required. Obtain via:

POST https://api.banking.netevia.dev/api/auth/v2

Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.

When to use

Use this endpoint when a user or an authorized partner administrator needs to audit account access activity. It is particularly valuable for detecting unauthorized login attempts, reviewing login patterns across devices and locations, and fulfilling security compliance requirements. Partners can also use this endpoint to surface security dashboards within their applications.

Query Parameters

ParameterTypeRequiredDescription
ProfileIdinteger (int32)NoFilter login history for a specific user profile.
SubProfileIdinteger (int32)NoFilter login history for a specific subprofile (authorized user).
StartDatestring (date-time)NoBeginning of the date range filter (ISO 8601 format).
EndDatestring (date-time)NoEnd of the date range filter (ISO 8601 format).
Skipinteger (int32)NoNumber of records to skip for pagination.
Countinteger (int32)NoMaximum number of records to return.

Response

200 OK

Returns an array of login attempt objects.

FieldTypeDescription
createdDatestring (date-time)Timestamp of the login attempt (ISO 8601).
ipAddressstring / nullIP address from which the login was attempted.
deviceIdstring / nullUnique identifier of the device used.
deviceNamestring / nullHuman-readable name of the device used.
locationstring / nullGeographic location inferred from the IP address.
userAgentstring / nullBrowser or client user-agent string.
successbooleanWhether the login attempt was successful.
userProfileIdinteger (int32)ID of the user profile associated with this login attempt.
mfabooleanWhether multi-factor authentication was used during this attempt.
[
  {
    "createdDate": "2026-06-08T14:23:11Z",
    "ipAddress": "203.0.113.45",
    "deviceId": "d7e4f1a2-bc93-4d2e-9f10-8c3b2a1e5f67",
    "deviceName": "iPhone 15 Pro",
    "location": "Miami, FL, US",
    "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15",
    "success": true,
    "userProfileId": 100234,
    "mfa": true
  },
  {
    "createdDate": "2026-06-07T09:05:43Z",
    "ipAddress": "198.51.100.22",
    "deviceId": "a1b2c3d4-1234-5678-abcd-ef0123456789",
    "deviceName": "Windows PC",
    "location": "Atlanta, GA, US",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "success": false,
    "userProfileId": 100234,
    "mfa": false
  }
]

Error Codes

CodeWhen it happens
400Missing required fields or validation error (e.g., malformed date-time format)
401Token missing, expired, or invalid
403Insufficient permissions to access the requested profile's login history
404Profile or subprofile not found
500Internal server error

Common Mistakes

  • Providing StartDate or EndDate in a non-ISO 8601 format — always use YYYY-MM-DDTHH:MM:SSZ.
  • Omitting both ProfileId and SubProfileId when the token has access to multiple profiles, which may return unexpected or overly broad results.
  • Not using Skip and Count together for paginated iteration — omitting Count may return a very large result set.
  • Expecting ipAddress or location to always be populated — these fields are nullable and may be absent for certain login events.

Related Endpoints

  • POST /api/auth/v2 — Authenticate and obtain a Bearer token
  • POST /api/auth/refresh — Refresh an existing Bearer token
  • GET /netevia/profile — Retrieve user profile details

Example

curl -X GET "https://api.banking.netevia.dev/netevia/loginHistory?ProfileId=100234&StartDate=2026-06-01T00%3A00%3A00Z&EndDate=2026-06-08T23%3A59%3A59Z&Skip=0&Count=25" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
Query Params
int32
int32
date-time
date-time
int32
int32
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json