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

> Learn about the pre-user-registration Action trigger's event object, which provides contextual information about the trigger execution.

# Actions Triggers: pre-user-registration - Event Object

The `event` object for the pre-user-registration Actions trigger provides contextual information about the trigger execution.

## `event.authentication`

<ResponseField name="event.authentication" type="dictionary" post={["optional"]}>
  Details about authentication obtained during the pre user registration flow.

  <Expandable title="authentication properties" defaultOpen>
    <ResponseField name="riskAssessment" type="dictionary" post={["optional"]}>
      Details about risk assessments information for different flows.

      <Expandable title="riskAssessment properties" defaultOpen>
        <ResponseField name="supplemental" type="dictionary" post={["optional"]}>
          Supplemental signals sent from third party providers to assist in risk assessments.

          <Expandable title="supplemental properties">
            <ResponseField name="akamai" type="dictionary" post={["optional"]}>
              \[Early Access] Supplemental risk assessment. This is available only if Akamai Account Protector is enabled and Akamai forwards the headers for the transaction.

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

                  <Expandable title="akamaiBot properties">
                    <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 strings" 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="dictionary" post={["optional"]}>
                  The user risk detection results as forwarded by Akamai Account Protector.

                  <Expandable title="akamaiUserRisk properties">
                    <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>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

## `event.client`

<ResponseField name="event.client" type="dictionary" post={["optional"]}>
  Information about the Client with which this transaction was initiated.

  <Expandable title="client properties" defaultOpen>
    <ResponseField name="client_id" type="string">
      The client id of the application the user is logging in to.
    </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>
  </Expandable>
</ResponseField>

## `event.connection`

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

  <Expandable title="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="dictionary" post={["optional"]}>
  Details about the custom domain associated with the current transaction.

  <Expandable title="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.request`

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

  <Expandable title="request properties" defaultOpen>
    <ResponseField name="body" type="dictionary">
      The body of the POST request. This data will only be available during refresh token, Client Credential Exchange flows and PreUserRegistration 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="user_agent" type="string" post={["optional"]}>
      The value of the `User-Agent` header received when initiating the transaction.
    </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="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.tenant`

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

  <Expandable title="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="transaction properties" defaultOpen>
    <ResponseField name="acr_values" type="array of strings">
      Any acr\_values provided in the original authentication request.
    </ResponseField>

    <ResponseField name="locale" type="string">
      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 strings" 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"]}>
      Possible 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_scopes" type="array of strings">
      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 strings" 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 strings">
      The ui\_locales provided in the original authentication 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>
  </Expandable>
</ResponseField>

## `event.user`

<ResponseField name="event.user" type="dictionary">
  An object describing the user who is attempting to register.

  <Expandable title="user properties" defaultOpen>
    <ResponseField name="app_metadata" type="dictionary" post={["optional"]}>
      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="email" type="string" post={["optional"]}>
      (unique) User's 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="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="picture" type="string" post={["optional"]}>
      URL pointing to the [user's profile picture](https://auth0.com/docs/users/change-user-picture).
    </ResponseField>

    <ResponseField name="user_metadata" type="dictionary" post={["optional"]}>
      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>
  </Expandable>
</ResponseField>
