List signIns


APIs under the /beta version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported.

Retrieve the Azure AD user sign-ins for your tenant. Sign-ins that are interactive in nature (where a username/password is passed as part of authorization token) and successful federated sign-ins are currently included in the sign-in logs. The most recent signIns are returned first.


One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Permission type Permissions (from least to most privileged)
Delegated (work or school account) AuditLog.Read.All
Delegated (personal Microsoft account) Not supported
Application AuditLog.Read.All

In addition, apps must be properly registered to Azure AD.

HTTP request

GET auditLogs/signIns

Optional query parameters

This method supports the following OData Query Parameters to help customize the response. For details about how to use these parameters, see OData query parameters.

Name Description Example
$filter Filters results (rows). /auditLogs/signIns?&$filter=createdDateTime le 2018-01-24
$top Sets the page size of results. /auditLogs/signIns?$top=1
$skiptoken Retrieves the next page of results from result sets that span multiple pages. /auditLogs/signIns?$skiptoken=01fa0e77c60c2d3d63226c8e3294c860__1

List of attributes supported by $filter parameter

Attribute Name Supported operators
id eq
userId eq
appId eq
createdDateTime eq, le, ge
userDisplayName eq, startswith
userPrincipalName eq, startswith
appDisplayName eq, startswith
ipAddress eq, startswith
location/city eq, startswith
location/state eq, startswith
location/countryOrRegion eq, startswith
status/errorCode eq
initiatedBy/user/id eq
initiatedBy/user/displayName eq
initiatedBy/user/userPrincipalName eq, startswith
clientAppUsed eq
conditionalAccessStatus eq
deviceDetail/browser eq, startswith
deviceDetail/operatingSystem eq, startswith
correlationId eq
riskDetail eq
riskLevelAggregated eq
riskLevelDuringSignIn eq
riskEventTypes eq
riskState eq
originalRequestId eq
tokenIssuerName eq
tokenIssuerType eq
resourceDisplayName eq
resourceId eq


If successful, this method returns a 200 OK response code and collection of signIn objects in the response body.



Here is an example of the request.


Here is an example of the response.

Note: The response object shown here might be shortened for readability. All the properties will be returned from an actual call.

HTTP/1.1 200 OK
Content-type: application/json
Content-length: 264

SDK sample code

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var signIns = await graphClient.AuditLogs.SignIns

Read the SDK documentation for details on how to add the SDK to your project and create an authProvider instance.

	"@odata.context": "$metadata#auditLogs/signIns",
	"value": [{
  		"userDisplayName":"Jon Doe",
 		 "appDisplayName":"Azure Portal",

  		"resourceDisplayName":"windows azure service management api",

    		"failureReason":"This error occurred due to 'Keep me signed in' interrupt when the user was signing-in.",
    		"operatingSystem":"Windows 7",
    		"browser":"Chrome 63.0.3239",
    		"city":"Lithia Springs",
      		"displayName":"New Name here4",