> ## Documentation Index
> Fetch the complete documentation index at: https://docs-staging.auth0-mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

> Learn about the post-login Action trigger's event object, which provides contextual information about the trigger execution.

# Event Object

The `event` object for the post-login Actions trigger provides contextual information about the trigger execution.

```json Event Object theme={null}
{
  "secrets": {},
  "client": {
    "client_id": "string",
    "metadata": {},
    "name": "string"
  },
  "connection": {
    "id": "string",
    "name": "string",
    "strategy": "string"
  },
  "request": {
    "body": {},
    "geoip": {},
    "ip": "string",
    "method": "string",
    "query": {}
  },
  "stats": {
    "logins_count": 0
  },
  "tenant": {
    "id": "string"
  },
  "user": {}
}
```

## `event.authentication`

<ResponseField name="event.authentication" type="object" post={["optional"]}>
  Details about authentication signals obtained during the login flow.

  <Expandable title="event.authentication properties" defaultOpen>
    <ResponseField name="methods" type="array of objects">
      Contains the authentication methods a user has completed during their session.
    </ResponseField>

    <ResponseField name="riskAssessment" type="object" post={["optional"]}>
      Details about risk assessments obtained during the login or password reset flow.

      <Expandable title="riskAssessment properties" defaultOpen>
        <ResponseField name="assessments" type="object">
          <Expandable title="assessments properties" defaultOpen>
            <ResponseField name="AgentDetection" type="object" post={["optional"]}>
              Determines if the user is logging in as a known agent.

              <Expandable title="AgentDetection properties" defaultOpen>
                <ResponseField name="code" type="string">
                  Allowed values: `unknown`, `verified_agent`
                </ResponseField>

                <ResponseField name="confidence" type="string">
                  Allowed values: `low`, `medium`, `high`, `neutral`
                </ResponseField>

                <ResponseField name="details" type="object" post={["optional"]}>
                  <Expandable title="details properties" defaultOpen>
                    <ResponseField name="provider" type="string" post={["optional"]} />
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="ImpossibleTravel" type="object" post={["optional"]}>
              Determines if the user is logging in from a location signaling impossible travel.

              <Expandable title="ImpossibleTravel properties" defaultOpen>
                <ResponseField name="code" type="string">
                  Allowed values: `minimal_travel_from_last_login`, `travel_from_last_login`, `substantial_travel_from_last_login`, `impossible_travel_from_last_login`, `invalid_travel`, `missing_geoip`, `anonymous_proxy`, `unknown_location`, `initial_login`, `location_history_not_found`, `assessment_not_available`
                </ResponseField>

                <ResponseField name="confidence" type="string">
                  Allowed values: `low`, `medium`, `high`, `neutral`
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="NewDevice" type="object" post={["optional"]}>
              Determines if the user is logging in from a known device.

              <Expandable title="NewDevice properties" defaultOpen>
                <ResponseField name="code" type="string">
                  Allowed values: `initial_login`, `assessment_not_available`, `match`, `partial_match`, `no_match`, `unknown_device`, `no_device_history`
                </ResponseField>

                <ResponseField name="confidence" type="string">
                  Allowed values: `low`, `medium`, `high`, `neutral`
                </ResponseField>

                <ResponseField name="details" type="object" post={["optional"]}>
                  <Expandable title="details properties" defaultOpen>
                    <ResponseField name="device" type="string" post={["optional"]}>
                      Allowed values: `unknown`, `known`
                    </ResponseField>

                    <ResponseField name="useragent" type="string" post={["optional"]}>
                      Allowed values: `unknown`, `known`
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="UntrustedIP" type="object" post={["optional"]}>
              Shows if the IP was found in Auth0's repository of low reputation IPs.

              <Expandable title="UntrustedIP properties" defaultOpen>
                <ResponseField name="code" type="string">
                  Allowed values: `assessment_not_available`, `not_found_on_deny_list`, `found_on_deny_list`, `invalid_ip_address`
                </ResponseField>

                <ResponseField name="confidence" type="string">
                  Allowed values: `low`, `medium`, `high`, `neutral`
                </ResponseField>

                <ResponseField name="details" type="object" post={["optional"]}>
                  <Expandable title="details properties" defaultOpen>
                    <ResponseField name="category" type="string" post={["optional"]} />

                    <ResponseField name="ip" type="string" post={["optional"]}>
                      The originating IP address of the request.
                    </ResponseField>

                    <ResponseField name="matches" type="string" post={["optional"]} />

                    <ResponseField name="source" type="string" post={["optional"]} />
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="confidence" type="string">
          Overall risk score

          Allowed values: `low`, `medium`, `high`, `neutral`
        </ResponseField>

        <ResponseField name="supplemental" type="object" post={["optional"]}>
          \[Early Access] Supplemental risk assessment.

          <Expandable title="supplemental properties" defaultOpen>
            <ResponseField name="akamai" type="dictionary" post={["optional"]}>
              <Expandable title="akamai properties" defaultOpen>
                <ResponseField name="akamaiBot" type="object" post={["optional"]}>
                  The bot detection results as forwarded by Akamai Bot Manager.

                  <Expandable title="akamaiBot properties" defaultOpen>
                    <ResponseField name="type" type="string" post={["optional"]}>
                      The type of the Akamai bot manager results.
                    </ResponseField>

                    <ResponseField name="action" type="string" post={["optional"]}>
                      The action of the Akamai bot manager results.
                    </ResponseField>

                    <ResponseField name="botCategory" type="array of string" post={["optional"]}>
                      The bot category of the Akamai bot manager results.
                    </ResponseField>

                    <ResponseField name="botScore" type="number" post={["optional"]}>
                      The bot score of the Akamai bot manager results.
                    </ResponseField>

                    <ResponseField name="botScoreResponseSegment" type="string" post={["optional"]}>
                      The bot score response segment of the Akamai bot manager results.
                    </ResponseField>

                    <ResponseField name="botnetId" type="string" post={["optional"]}>
                      The botnet ID of the Akamai bot manager results.
                    </ResponseField>
                  </Expandable>
                </ResponseField>

                <ResponseField name="akamaiUserRisk" type="object" post={["optional"]}>
                  The user risk detection results as forwarded by Akamai Account Protector.

                  <Expandable title="akamaiUserRisk properties" defaultOpen>
                    <ResponseField name="action" type="string" post={["optional"]}>
                      The action of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="allow" type="number" post={["optional"]}>
                      The allowed status of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="emailDomain" type="string" post={["optional"]}>
                      The email domain of the user.
                    </ResponseField>

                    <ResponseField name="general" type="dictionary" post={["optional"]}>
                      The general risk of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="ouid" type="string" post={["optional"]}>
                      The OUID of the user.
                    </ResponseField>

                    <ResponseField name="requestid" type="string" post={["optional"]}>
                      The request ID of the user.
                    </ResponseField>

                    <ResponseField name="risk" type="dictionary" post={["optional"]}>
                      The risk of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="score" type="number" post={["optional"]}>
                      The score of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="status" type="number" post={["optional"]}>
                      The status of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="trust" type="dictionary" post={["optional"]}>
                      The trust of the Akamai user risk assessment.
                    </ResponseField>

                    <ResponseField name="username" type="string" post={["optional"]}>
                      The username of the user.
                    </ResponseField>

                    <ResponseField name="uuid" type="string" post={["optional"]}>
                      The UUID of the Akamai user risk assessment.
                    </ResponseField>
                  </Expandable>
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="version" type="string" />
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.authorization`

<ResponseField name="event.authorization" type="object" post={["optional"]}>
  An object containing information describing the authorization granted to the user who is logging in.

  <Expandable title="event.authorization properties" defaultOpen>
    <ResponseField name="roles" type="array of string">
      An array containing the names of a user's assigned roles.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.client`

<ResponseField name="event.client" type="object">
  Information about the Client with which this login transaction was initiated.

  <Expandable title="event.client properties" defaultOpen>
    <ResponseField name="client_id" type="string">
      The client id of the application to which the user is logging in.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary">
      An object for holding other application properties.
    </ResponseField>

    <ResponseField name="name" type="string">
      The name of the application (as defined in the Dashboard).
    </ResponseField>

    <ResponseField name="refresh_token" type="object" post={["optional"]}>
      \[Early Access] An object for holding refresh token configuration properties.

      <Expandable title="refresh_token properties" defaultOpen>
        <ResponseField name="policies" type="array of objects" post={["optional"]}>
          \[Early Access] A collection of policies governing multi-resource refresh token exchange (MRRT), defining how refresh tokens can be used across different resource servers
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.connection`

<ResponseField name="event.connection" type="object">
  Details about the Connection that was used to authenticate the user.

  <Expandable title="event.connection properties" defaultOpen>
    <ResponseField name="id" type="string">
      The connection's unique identifier.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary" post={["optional"]}>
      Metadata associated with the connection.
    </ResponseField>

    <ResponseField name="name" type="string">
      The name of the connection used to authenticate the user (such as `twitter` or `some-g-suite-domain`).
    </ResponseField>

    <ResponseField name="strategy" type="string">
      The type of connection. For social connections, `event.connection.strategy === event.connection.name`. For enterprise connections, the strategy is `waad` (Windows Azure AD), `ad` (Active Directory/LDAP), `auth0` (database connections), and so on.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.custom_domain`

<ResponseField name="event.custom_domain" type="object" post={["optional"]}>
  Details about the custom domain associated with the current transaction.

  <Expandable title="event.custom_domain properties" defaultOpen>
    <ResponseField name="domain" type="string">
      The custom domain name.
    </ResponseField>

    <ResponseField name="domain_metadata" type="dictionary">
      Custom domain metadata as key-value pairs.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.organization`

<ResponseField name="event.organization" type="dictionary" post={["optional"]}>
  Details about the Organization associated with the current transaction.

  <Expandable title="event.organization properties" defaultOpen>
    <ResponseField name="id" type="string">
      The Organization identifier.
    </ResponseField>

    <ResponseField name="display_name" type="string">
      The friendly name of the Organization.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary">
      Metadata associated with the Organization.
    </ResponseField>

    <ResponseField name="name" type="string">
      The name of the Organization.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.prompt`

<ResponseField name="event.prompt" type="object" post={["optional"]}>
  Collected data from rendered custom prompts.

  <Expandable title="event.prompt properties" defaultOpen>
    <ResponseField name="id" type="string">
      The prompt ID.
    </ResponseField>

    <ResponseField name="fields" type="dictionary" post={["optional"]}>
      Fields and hidden fields data.
    </ResponseField>

    <ResponseField name="vars" type="dictionary" post={["optional"]}>
      Shared variables data.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.refresh_token`

<ResponseField name="event.refresh_token" type="object" post={["optional"]}>
  \[Enterprise Customers] The current refresh token.

  <Expandable title="event.refresh_token properties" defaultOpen>
    <ResponseField name="id" type="string">
      \[Enterprise Customers] The ID of the refresh token.
    </ResponseField>

    <ResponseField name="client_id" type="string" post={["optional"]}>
      \[Enterprise Customers] The ID of the client associated with the refresh token.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      \[Enterprise Customers] Timestamp of when the refresh token was created.
    </ResponseField>

    <ResponseField name="device" type="object" post={["optional"]}>
      <Expandable title="device properties" defaultOpen>
        <ResponseField name="initial_asn" type="string" post={["optional"]}>
          \[Enterprise Customers] First autonomous system number associated with this refresh token.
        </ResponseField>

        <ResponseField name="initial_ip" type="string" post={["optional"]}>
          \[Enterprise Customers] First IP address associated with this refresh token.
        </ResponseField>

        <ResponseField name="initial_user_agent" type="string" post={["optional"]}>
          \[Enterprise Customers] First user agent of the device associated with this refresh token.
        </ResponseField>

        <ResponseField name="last_asn" type="string" post={["optional"]}>
          \[Enterprise Customers] Last autonomous system number from which this refresh token was last exchanged.
        </ResponseField>

        <ResponseField name="last_ip" type="string" post={["optional"]}>
          \[Enterprise Customers] Last IP address from which this refresh token was last exchanged.
        </ResponseField>

        <ResponseField name="last_user_agent" type="string" post={["optional"]}>
          \[Enterprise Customers] Last user agent of the device from which this refresh token was last exchanged.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="expires_at" type="string" post={["optional"]}>
      \[Enterprise Customers] Timestamp of when the refresh token will absolutely expire.
    </ResponseField>

    <ResponseField name="idle_expires_at" type="string" post={["optional"]}>
      \[Enterprise Customers] Timestamp of when the refresh token will idle expire.
    </ResponseField>

    <ResponseField name="last_exchanged_at" type="string" post={["optional"]}>
      \[Enterprise Customers] Timestamp of when the refresh token was last successfully exchanged.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary" post={["optional"]}>
      Refresh Token Metadata
    </ResponseField>

    <ResponseField name="resource_servers" type="array of objects" post={["optional"]} />

    <ResponseField name="rotating" type="boolean" post={["optional"]}>
      \[Enterprise Customers] If the refresh token is a rotating refresh token.
    </ResponseField>

    <ResponseField name="session_id" type="string" post={["optional"]}>
      \[Enterprise Customers] The ID of the session bound to the refresh token.
    </ResponseField>

    <ResponseField name="session_transfer" type="object" post={["optional"]}>
      \[Enterprise Customers] This object is defined when the session is created from a session transfer token (Native to Web SSO), undefined otherwise.

      <Expandable title="session_transfer properties" defaultOpen>
        <ResponseField name="parent_refresh_token" type="object" post={["optional"]}>
          \[Enterprise Customers] This object is defined when the refresh token is created from a session initiated as a result of session transfer (Native to Web SSO), undefined otherwise.

          <Expandable title="parent_refresh_token properties" defaultOpen>
            <ResponseField name="id" type="string" post={["optional"]}>
              \[Enterprise Customers] The ID of the parent refresh token from which this session/refresh token was created as a result of a session transfer (Native to Web SSO).
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="user_id" type="string" post={["optional"]}>
      \[Enterprise Customers] The ID of the user bound to the refresh token.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.request`

<ResponseField name="event.request" type="object">
  Details about the request that initiated the transaction.

  <Expandable title="event.request properties" defaultOpen>
    <ResponseField name="asn" type="string" post={["optional"]}>
      The ASN (autonomous system number) of the user-agent making the request.
    </ResponseField>

    <ResponseField name="body" type="dictionary">
      The body of the POST request. This data will only be available during refresh token and Client Credential Exchange flows and Post Login Action.
    </ResponseField>

    <ResponseField name="geoip" type="dictionary">
      <Expandable title="geoip properties" defaultOpen>
        <ResponseField name="cityName" type="string" post={["optional"]} />

        <ResponseField name="continentCode" type="string" post={["optional"]} />

        <ResponseField name="countryCode" type="string" post={["optional"]} />

        <ResponseField name="countryCode3" type="string" post={["optional"]} />

        <ResponseField name="countryName" type="string" post={["optional"]} />

        <ResponseField name="latitude" type="number" post={["optional"]} />

        <ResponseField name="longitude" type="number" post={["optional"]} />

        <ResponseField name="subdivisionCode" type="string" post={["optional"]} />

        <ResponseField name="subdivisionName" type="string" post={["optional"]} />

        <ResponseField name="timeZone" type="string" post={["optional"]} />
      </Expandable>
    </ResponseField>

    <ResponseField name="hostname" type="string" post={["optional"]}>
      The hostname that is being used for the authentication flow.
    </ResponseField>

    <ResponseField name="ip" type="string">
      The originating IP address of the request.
    </ResponseField>

    <ResponseField name="language" type="string" post={["optional"]}>
      The language requested by the browser.
    </ResponseField>

    <ResponseField name="method" type="string">
      The HTTP method used for the request
    </ResponseField>

    <ResponseField name="query" type="dictionary">
      The query string parameters sent to the authorization request.
    </ResponseField>

    <ResponseField name="user_agent" type="string" post={["optional"]}>
      The value of the `User-Agent` header received when initiating the transaction.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.resource_server`

<ResponseField name="event.resource_server" type="object" post={["optional"]}>
  Details about the resource server to which the access is being requested.

  <Expandable title="event.resource_server properties" defaultOpen>
    <ResponseField name="identifier" type="string">
      The identifier of the resource server. For example: `https://your-api.example.com`.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.secrets`

<ResponseField name="event.secrets" type="secrets">
  Secret values securely associated with this Action.
</ResponseField>

## `event.security_context`

<ResponseField name="event.security_context" type="object" post={["optional"]}>
  An object containing fingerprint signatures. This will be available only if the client is using cloudflare. The JA3/JA4 fingerprint can be null or empty in some cases. The most common case is for HTTP requests because JA3 and JA4 are calculated in TLS. It can also be empty due to the Worker sending requests within the same zone or to a zone that is not proxied (or a third party).

  <Expandable title="event.security_context properties" defaultOpen>
    <ResponseField name="ja3" type="string" post={["optional"]}>
      JA3 fingerprint signature. This will be available only if the client is using a TLS connection.
    </ResponseField>

    <ResponseField name="ja4" type="string" post={["optional"]}>
      JA4 fingerprint signature. This will be available only if the client is using a TLS connection.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.session`

<ResponseField name="event.session" type="object" post={["optional"]}>
  The current login session.

  <Expandable title="event.session properties" defaultOpen>
    <ResponseField name="id" type="string">
      The ID of the current session.
    </ResponseField>

    <ResponseField name="actor" type="dictionary" post={["optional"]}>
      The actor for sessions established using Session transfer tokens from Custom Token Exchange. Contains a required 'sub' property and up to 5 additional properties set via the Custom Token Exchange action. The actor will be defined for delegated sessions only.

      <Expandable title="actor properties" defaultOpen>
        <ResponseField name="sub" type="string">
          The subject identifier of the actor. A unique identifier for the entity acting in this role.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="authenticated_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session was last authenticated.
    </ResponseField>

    <ResponseField name="clients" type="array of objects" post={["optional"]}>
      \[Enterprise Customers] List of client details for the session.
    </ResponseField>

    <ResponseField name="cookie" type="object" post={["optional"]}>
      \[Enterprise Customers] Cookie configuration for the session, which determines how the session cookie is handled by the User Agent.

      <Expandable title="cookie properties" defaultOpen>
        <ResponseField name="mode" type="string">
          \[Enterprise Customers] The persistence mode of the session cookie. When set to 'non-persistent' (ephemeral), the cookie will be deleted when the browser is closed. When set to 'persistent', the cookie will be stored until it expires or is deleted by the user.

          Allowed values: `persistent`, `non-persistent`
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session was created.
    </ResponseField>

    <ResponseField name="device" type="object" post={["optional"]}>
      \[Enterprise Customers] Metadata related to the device used in the session.

      <Expandable title="device properties" defaultOpen>
        <ResponseField name="initial_asn" type="string" post={["optional"]}>
          \[Enterprise Customers] First autonomous system number associated with this session.
        </ResponseField>

        <ResponseField name="initial_ip" type="string" post={["optional"]}>
          \[Enterprise Customers] First IP address associated with this session.
        </ResponseField>

        <ResponseField name="initial_user_agent" type="string" post={["optional"]}>
          \[Enterprise Customers] First user agent of the device associated with this session.
        </ResponseField>

        <ResponseField name="last_asn" type="string" post={["optional"]}>
          \[Enterprise Customers] Last autonomous system number from which this user logged in.
        </ResponseField>

        <ResponseField name="last_ip" type="string" post={["optional"]}>
          \[Enterprise Customers] Last IP address from which this user logged in.
        </ResponseField>

        <ResponseField name="last_user_agent" type="string" post={["optional"]}>
          \[Enterprise Customers] Last user agent of the device from which this user logged in.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="expires_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session will expire.
    </ResponseField>

    <ResponseField name="idle_expires_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session will expire if idle.
    </ResponseField>

    <ResponseField name="last_interacted_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session was last successfully interacted with.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary" post={["optional"]}>
      \[Enterprise Customers] \[Early Access] Session Metadata
    </ResponseField>

    <ResponseField name="session_transfer" type="object" post={["optional"]}>
      \[Enterprise Customers] \[Early Access] This object is defined when the session is created from a session transfer token (Native to Web SSO), undefined otherwise.

      <Expandable title="session_transfer properties" defaultOpen>
        <ResponseField name="parent_refresh_token" type="object" post={["optional"]}>
          \[Enterprise Customers] This object is defined when the refresh token is created from a session initiated as a result of session transfer (Native to Web SSO), undefined otherwise.

          <Expandable title="parent_refresh_token properties" defaultOpen>
            <ResponseField name="id" type="string" post={["optional"]}>
              \[Enterprise Customers] The ID of the parent refresh token from which this session/refresh token was created as a result of a session transfer (Native to Web SSO).
            </ResponseField>

            <ResponseField name="metadata" type="dictionary" post={["optional"]}>
              \[Enterprise Customers] The metadata of the parent refresh token from which this session/refresh token was created as a result of a session transfer (Native to Web SSO).
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="updated_at" type="string" post={["optional"]}>
      \[Enterprise Customers] The date and time when the session was last updated.
    </ResponseField>

    <ResponseField name="user_id" type="string" post={["optional"]}>
      \[Enterprise Customers] ID of the user which can be used when interacting with other APIs.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.session_transfer_token`

<ResponseField name="event.session_transfer_token" type="object" post={["optional"]}>
  \[Early Access] Details of the current session transfer token being used to establish Single Sign-On (SSO) from a native application to a web application.

  <Expandable title="event.session_transfer_token properties" defaultOpen>
    <ResponseField name="client_id" type="string">
      \[Early Access] The client identifier of the application that issued the token.
    </ResponseField>

    <ResponseField name="request" type="object">
      \[Early Access] Details about the request that issued the token.

      <Expandable title="request properties" defaultOpen>
        <ResponseField name="asn" type="string" post={["optional"]}>
          \[Early Access] The Autonomous System Number (ASN) associated with the request that issued the token.
        </ResponseField>

        <ResponseField name="geoip" type="dictionary" post={["optional"]}>
          <Expandable title="geoip properties" defaultOpen>
            <ResponseField name="cityName" type="string" post={["optional"]} />

            <ResponseField name="continentCode" type="string" post={["optional"]} />

            <ResponseField name="countryCode" type="string" post={["optional"]} />

            <ResponseField name="countryCode3" type="string" post={["optional"]} />

            <ResponseField name="countryName" type="string" post={["optional"]} />

            <ResponseField name="latitude" type="number" post={["optional"]} />

            <ResponseField name="longitude" type="number" post={["optional"]} />

            <ResponseField name="subdivisionCode" type="string" post={["optional"]} />

            <ResponseField name="subdivisionName" type="string" post={["optional"]} />

            <ResponseField name="timeZone" type="string" post={["optional"]} />
          </Expandable>
        </ResponseField>

        <ResponseField name="ip" type="string">
          \[Early Access] The IP address associated with the request that issued the token.
        </ResponseField>

        <ResponseField name="user_agent" type="string" post={["optional"]}>
          \[Early Access] The User-Agent string of the device that issued the token.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="scope" type="array of string">
      \[Early Access] The scopes requested when the token was issued.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.stats`

<ResponseField name="event.stats" type="object">
  Login statistics for the current user.

  <Expandable title="event.stats properties" defaultOpen>
    <ResponseField name="logins_count" type="number">
      The number of times this user has logged in.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.tenant`

<ResponseField name="event.tenant" type="object">
  Details about the Tenant associated with the current transaction.

  <Expandable title="event.tenant properties" defaultOpen>
    <ResponseField name="id" type="string">
      The name of the tenant.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.transaction`

<ResponseField name="event.transaction" type="dictionary" post={["optional"]}>
  Details about the current transaction.

  <Expandable title="event.transaction properties" defaultOpen>
    <ResponseField name="id" type="string" post={["optional"]}>
      Unique identifier for the transaction. Populated for all browser-based login flows.
    </ResponseField>

    <ResponseField name="acr_values" type="array of string" post={["optional"]}>
      Any acr\_values provided in the original authentication request.
    </ResponseField>

    <ResponseField name="linking_id" type="string" post={["optional"]}>
      Dynamic Linking ID that allows developers to reference this transaction.
    </ResponseField>

    <ResponseField name="locale" type="string" post={["optional"]}>
      The locale to be used for this transaction as determined by comparing the browser's requested languages to the tenant's language settings.
    </ResponseField>

    <ResponseField name="login_hint" type="string" post={["optional"]}>
      Hint to the Authorization Server about the login identifier the End-User might use to log in (if necessary).
    </ResponseField>

    <ResponseField name="prompt" type="array of string" post={["optional"]}>
      List of instructions indicating whether the user may be prompted for re-authentication and consent.
    </ResponseField>

    <ResponseField name="protocol" type="string" post={["optional"]}>
      Allowed values: `oidc-basic-profile`, `oidc-ciba`, `oidc-ciba-web-link`, `oidc-implicit-profile`, `oauth2-device-code`, `oauth2-resource-owner`, `oauth2-resource-owner-jwt-bearer`, `oauth2-password`, `oauth2-webauthn`, `oauth2-access-token`, `oauth2-refresh-token`, `oauth2-token-exchange`, `oidc-hybrid-profile`, `samlp`, `wsfed`, `wstrust-usernamemixed`
    </ResponseField>

    <ResponseField name="redirect_uri" type="string" post={["optional"]}>
      The URL to which Auth0 will redirect the browser after the transaction is completed.
    </ResponseField>

    <ResponseField name="requested_authorization_details" type="array of objects" post={["optional"]}>
      The details of a rich authorization request per Section 2 of the Rich Authorization Requests spec at [https://datatracker.ietf.org/doc/html/draft-ietf-oauth-rar#section-2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-rar#section-2).
    </ResponseField>

    <ResponseField name="requested_scopes" type="array of string" post={["optional"]}>
      The scopes requested (if any) when starting this authentication flow.
    </ResponseField>

    <ResponseField name="response_mode" type="string" post={["optional"]}>
      Informs the Authorization Server of the mechanism to be used for returning parameters from the Authorization Endpoint.

      Allowed values: `query`, `fragment`, `form_post`, `web_message`
    </ResponseField>

    <ResponseField name="response_type" type="array of string" post={["optional"]}>
      Denotes the kind of credential that Auth0 will return.
    </ResponseField>

    <ResponseField name="state" type="string" post={["optional"]}>
      An opaque arbitrary alphanumeric string your app adds to the initial request that Auth0 includes when redirecting back to your application.
    </ResponseField>

    <ResponseField name="ui_locales" type="array of string" post={["optional"]}>
      The ui\_locales provided in the original authentication request.
    </ResponseField>

    <ResponseField name="actor" type="dictionary" post={["optional"]}>
      The actor in a token exchange request.

      <Expandable title="actor properties" defaultOpen>
        <ResponseField name="act" type="dictionary" post={["optional"]}>
          The next actor in the delegation chain, representing that this actor is making the request on behalf of another principal.

          <Expandable title="act properties" defaultOpen>
            <ResponseField name="act" type="dictionary" post={["optional"]}>
              The next actor in the delegation chain, representing that this actor is making the request on behalf of another principal.

              <Expandable title="act properties" defaultOpen>
                <ResponseField name="act" type="dictionary" post={["optional"]}>
                  The next actor in the delegation chain, representing that this actor is making the request on behalf of another principal.

                  <Expandable title="act properties" defaultOpen>
                    <ResponseField name="act" type="dictionary" post={["optional"]}>
                      The next actor in the delegation chain, representing that this actor is making the request on behalf of another principal.
                    </ResponseField>

                    <ResponseField name="sub" type="string">
                      The subject identifier of the actor. A unique identifier for the entity acting in this role.
                    </ResponseField>
                  </Expandable>
                </ResponseField>

                <ResponseField name="sub" type="string">
                  The subject identifier of the actor. A unique identifier for the entity acting in this role.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="sub" type="string">
              The subject identifier of the actor. A unique identifier for the entity acting in this role.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="sub" type="string">
          The subject identifier of the actor. A unique identifier for the entity acting in this role.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="actor_token_type" type="string" post={["optional"]}>
      The type of the actor token in a token exchange request.
    </ResponseField>

    <ResponseField name="correlation_id" type="string" post={["optional"]}>
      Correlation ID can be provided in the initial authentication request when the application redirects to Universal Login. You can use value to correlate logs and requests from your Action code with the user flow.
    </ResponseField>

    <ResponseField name="metadata" type="dictionary">
      An object containing shared data across custom Actions for the duration of a transaction.
    </ResponseField>

    <ResponseField name="subject_token_type" type="string" post={["optional"]}>
      The type of the subject token in a token exchange request.
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.user`

<ResponseField name="event.user" type="dictionary">
  An object describing the user on whose behalf the current transaction was initiated.

  <Expandable title="event.user properties" defaultOpen>
    <ResponseField name="app_metadata" type="dictionary">
      Custom fields that store info about a user that influences the user's access, such as support plan, security roles, or access control groups.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Timestamp indicating when the user profile was first created.
    </ResponseField>

    <ResponseField name="email" type="string" post={["optional"]}>
      (unique) User's email address.
    </ResponseField>

    <ResponseField name="email_verified" type="boolean">
      Indicates whether the user has verified their email address.
    </ResponseField>

    <ResponseField name="family_name" type="string" post={["optional"]}>
      User's family name.
    </ResponseField>

    <ResponseField name="given_name" type="string" post={["optional"]}>
      User's given name.
    </ResponseField>

    <ResponseField name="last_password_reset" type="string" post={["optional"]}>
      Timestamp indicating the last time the user's password was reset/changed. At user creation, this field does not exist. This property is only available for Database connections.
    </ResponseField>

    <ResponseField name="name" type="string" post={["optional"]}>
      User's full name.
    </ResponseField>

    <ResponseField name="nickname" type="string" post={["optional"]}>
      User's nickname.
    </ResponseField>

    <ResponseField name="phone_number" type="string" post={["optional"]}>
      User's phone number.
    </ResponseField>

    <ResponseField name="phone_verified" type="boolean" post={["optional"]}>
      Indicates whether the user has verified their phone number.
    </ResponseField>

    <ResponseField name="picture" type="string" post={["optional"]}>
      URL pointing to the [user's profile picture](https://auth0.com/docs/users/change-user-picture).
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Timestamp indicating when the user's profile was last updated/modified.
    </ResponseField>

    <ResponseField name="user_id" type="string">
      (unique) User's unique identifier.
    </ResponseField>

    <ResponseField name="user_metadata" type="dictionary">
      Custom fields that store info about a user that does not impact what they can or cannot access, such as work address, home address, or user preferences.
    </ResponseField>

    <ResponseField name="username" type="string" post={["optional"]}>
      (unique) User's username.
    </ResponseField>

    <ResponseField name="enrolledFactors" type="array of objects" post={["optional"]}>
      An an array of authentication factors that the user has enrolled.
    </ResponseField>

    <ResponseField name="multifactor" type="array of string" post={["optional"]}>
      List of multi-factor authentication (MFA) providers with which the user is enrolled. This array is updated when the user enrolls in MFA and when an administrator resets a user's MFA enrollments.
    </ResponseField>

    <ResponseField name="identities" type="array of objects">
      Contains info retrieved from the identity provider with which the user originally authenticates. Users may also link their profile to multiple identity providers; those identities will then also appear in this array. The contents of an individual identity provider object varies by provider.
    </ResponseField>
  </Expandable>
</ResponseField>
