Breached password detection is a critical component of secure applications.    Read the white paper

FusionAuth logo
FusionAuth logo
  • Features
    FusionAuth Reactor

    FusionAuth Reactor is a powerful suite of features developed to extend FusionAuth's core functionality.

    • Flexible Architecture   Flexible Architecture
    • Auth the Way You Want It   Auth the Way You Want It
    • Security & Compliance   Security & Compliance
    • Ultimate Password Control   Ultimate Password Control
    • Customizable User Experience   Customizable User Experience
    • Advanced Registration Forms   Advanced Registration Forms
    • Built for Devs   Built for Devs
    • User Management & Reporting   User Management & Reporting
    • Scalability   Scalability
    • Breached Password Detection   Breached Password Detection
    • Connectors   Connectors
    • FusionAuth Reactor   FusionAuth Reactor
  • Pricing
  • Docs
  • Downloads
  • Resources
    FusionAuth Resources
    • Upgrade from SaaS
    • Upgrade from Open Source
    • Upgrade from Home Grown
    • Blog   Blog
    • Forum   Forum
    • Community & Support   Community & Support
    • Customer & Partners   Customers & Partners
    • Video & Podcasts   Videos & Podcasts
    • Tech Guides   Getting Started
  • Expert Advice
    Expert Advice for Developers

    Learn everything you need to know about authentication, authorization, identity, and access management from our team of industry experts.

    • Authentication   Authentication
    • CIAM   CIAM
    • Identity Basics   Identity Basics
    • OAuth   OAuth
    • Security   Security
    • Tokens   Tokens
    • Dev Tools   Dev Tools
  • Account
Navigate to...
  • Welcome
  • Getting Started
  • 5-Minute Setup Guide
  • Reactor
  • Core Concepts
    • Overview
    • Users
    • Roles
    • Groups
    • Registrations
    • Applications
    • Tenants
    • Identity Providers
    • Authentication and Authorization
    • Integration Points
    • Roadmap
  • Installation Guide
    • Overview
    • System Requirements
    • Server Layout
    • Cluster
    • Docker
    • Fast Path
    • Kickstart™
    • Homebrew
    • Packages
    • Database
    • FusionAuth App
    • FusionAuth Search
    • Securing
    • Upgrading
  • APIs
    • Overview
    • Authentication
    • Errors
    • Actioning Users
    • Applications
    • Audit Logs
    • Connectors
      • Overview
      • Generic
      • LDAP
    • Consent
    • Emails
    • Event Logs
    • Families
    • Forms
    • Form Fields
    • Groups
    • Identity Providers
      • Overview
      • Apple
      • Facebook
      • Google
      • HYPR
      • Twitter
      • OpenID Connect
      • SAML v2
      • External JWT
    • Integrations
    • JWT
    • Keys
    • Lambdas
    • Login
    • Passwordless
    • Registrations
    • Reports
    • System
    • Tenants
    • Themes
    • Two Factor
    • Users
    • User Actions
    • User Action Reasons
    • User Comments
    • Webhooks
  • Client Libraries
    • Overview
    • Dart
    • Go
    • Java
    • JavaScript
    • .NET Core
    • Node
    • PHP
    • Python
    • Ruby
    • Typescript
  • Themes
    • Overview
    • Localization
    • Examples
  • Email & Templates
    • Overview
    • Configure Email
    • Email Templates
  • Events & Webhooks
    • Overview
    • Events
    • Writing a Webhook
    • Securing Webhooks
  • Example Apps
    • Overview
    • Go
    • Java
    • JavaScript
    • .NET Core
    • PHP
    • Python
    • Ruby
  • Lambdas
    • Overview
    • Apple Reconcile
    • External JWT Reconcile
    • Facebook Reconcile
    • Google Reconcile
    • HYPR Reconcile
    • JWT Populate
    • LDAP Connector Reconcile
    • OpenID Connect Reconcile
    • SAML v2 Populate
    • SAML v2 Reconcile
    • Twitter Reconcile
  • Identity Providers
    • Overview
    • Apple
    • Facebook
    • Google
    • HYPR
    • Twitter
    • OpenID Connect
      • Overview
      • Azure AD
      • Github
      • Discord
    • SAML v2
      • Overview
      • ADFS
    • External JWT
      • Overview
      • Example
  • Connectors
    • Overview
    • Generic Connector
    • LDAP Connector
    • FusionAuth Connector
  • Integrations
    • Overview
    • CleanSpeak
    • Kafka
    • Twilio
  • OpenID Connect & OAuth 2.0
    • Overview
    • Endpoints
    • Tokens
  • SAML v2 IdP
    • Overview
    • Google
    • Zendesk
  • Plugins
    • Writing a Plugin
    • Password Encryptors
  • Guides
    • Overview
    • Advanced Registration Forms
    • Breached Password Detection
    • Migration
    • Passwordless
    • Securing Your APIs
    • Silent Mode
  • Tutorials
    • Overview
    • Setup Wizard & First Login
    • Register/Login a User
    • Migrate Users
    • JSON Web Tokens
    • Authentication Tokens
    • Start and Stop FusionAuth
    • Switch Search Engines
    • User Account Lockout
    • Two Factor
  • Reference
    • CORS
    • Configuration
    • Data Types
    • Known Limitations
    • Password Encryptors
  • Release Notes
  • Troubleshooting

Actioning Users

Overview

This page contains the APIs that are used for actioning users. Once you have created the User Actions, you use this API to invoke a User Action on a User.

  • Take an Action on a User

  • Retrieve a Previously Taken Action

  • Update a Previously Taken Action

  • Cancel a Previously Taken Action

Take an Action on a User

This API is used to take a User Action on a User. User Actions are the method that FusionAuth uses to discipline, reward and interact with Users.

Request

Take an action on a User

URI

POST /api/user/action

Request Headers

X-FusionAuth-TenantId [String] Optional

The unique Id of the tenant used to scope this API request.

The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

See Making an API request using a Tenant Id for additional information.

Request Body

action.actioneeUserId [UUID] Required

The Id of the User that is being actioned.

action.actionerUserId [UUID] Required

The Id of the User that is taking the action on the User.

action.applicationIds [Array<UUID>] Optional

The list of Application ids that the action is being performed in.

action.comment [String] Optional

The comment left by the actioner.

action.emailUser [Boolean] Optional defaults to false

Whether FusionAuth should send an email to the User.

action.expiry [Long] Optional

The expiration instant of this User Action. This value is required for time-based User Actions.

To cause the action to be applied indefinitely, or until the action is canceled or modified, set this value to 9223372036854775807.

action.notifyUser [Boolean] Optional defaults to false

The notifyUser flag that is passed along in any events FusionAuth sends to registered Webhooks.

action.option [String] Optional

The User Action Option that the actioner selected.

action.reasonId [UUID] Optional

The Id of the User Action Reason that the actioner selected.

action.userActionId [UUID] Required

The Id of the User Action that the actioner is performing on the User.

broadcast [Boolean] Optional defaults to false

Whether or not FusionAuth will broadcast the User Action to any registered Webhooks.

Example Request JSON
{
  "broadcast": true,
  "action": {
    "actioneeUserId": "00000000-0000-0000-0000-000000000001",
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "comment": "This user is being a jerk",
    "emailUser": true,
    "expiry": 1471586483322,
    "notifyUser": true,
    "reasonId": "00000000-0000-0000-0000-000000000020",
    "userActionId": "00000000-0000-0000-0000-000000000011"
  }
}

Response

The response for this API contains the User Action along with any event and email information that was generated by FusionAuth.

Table 1. Response Codes
Code Description

200

The request was successful. The response will contain a JSON body.

400

The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors.

401

You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

500

There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

503

The search index is not available or encountered an exception so the request cannot be completed. The response will contain a JSON body.

504

One or more Webhook endpoints returned an invalid response or were unreachable. Based on the transaction configuration for this event your action cannot be completed. A stack trace is provided and logged in the FusionAuth log files.

Response Body

action.actioneeUserId [UUID]

The Id of the User that was actioned.

action.actionerUserId [UUID]

The Id of the User that took the action on the User. If the action was initiated by FusionAuth this value will not be provided.

action.applicationIds [Array<UUID>]

This parameter if provided specifies the scope of the User Action. When an Action is scoped to one or more Applications the Application Ids will be provided in this parameter.

action.comment [String]

An optional comment provided when the Action was created, updated or canceled. This value will always be the last comment set on the action, see history for previous values.

action.emailUserOnEnd [Boolean]

Whether FusionAuth will email the User when a time-based User Actions expires.

action.endEventSent [Boolean]

Whether FusionAuth will send events when a time-based User Actions expires.

action.expiry [Long]

The expiration instant of the User Action.

action.id [UUID]

The Id of the User Action record.

action.insertInstant [Long]

The instant that the User Action was taken.

action.localizedOption [String]

The localized version of the User Action Option that was selected by the actioner.

action.localizedReason [String]

The localized version of the User Action Reason that was selected by the actioner.

action.notifyUserOnEnd [String]

Whether or not FusionAuth will send events to registered Webhooks when a time-based User Action expires.

action.option [String]

The non-localized version of the User Action Option that was selected by the actioner.

action.reason [String]

The non-localized version of the User Action Reason that was selected by the actioner.

action.reasonCode [String]

The User Action Reason code that was selected by the actioner.

action.userActionId [UUID]

The unique Id of the User Action. This Id can be used to retrieve the User Action using the Retrieve a User Action API.

Example Response JSON for a Single User Action
{
  "action": {
    "actioneeUserId": "00000000-0000-0000-0000-000000000001",
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "applicationIds": [
      "00000000-0000-0000-0000-000000000042",
      "00000000-0000-0000-0000-000000000043"
    ],
    "comment": "This user is being a jerk",
    "createInstant": 1471786483322,
    "emailUserOnEnd": false,
    "endEventSent": false,
    "expiry": 1471586483322,
    "id": "00000000-0000-0000-0000-013500000002",
    "insertInstant": 1595361142909,
    "lastUpdateInstant": 1595361143101,
    "localizedOption": "Lock account full",
    "localizedReason": "Community rules infraction",
    "event": {
      "action": "Lock account full",
      "actionId": "00000000-0000-0000-0000-000000000010",
      "actioneeUserId": "00000000-0000-0000-0000-000000000001",
      "actionerUserId": "00000000-0000-0000-0000-000000000002",
      "comment": "This user is being a jerk",
      "createInstant": 1471786483322,
      "email": {
        "from": {
          "address": "support@fusionauth.io",
          "display": "FusionAuth Support"
        },
        "html": "...",
        "subject": "You account has been locked",
        "text": "...",
        "to": {
          "address": "foo@bar.com",
          "display": "Foo Jones"
        }
      },
      "expiry": 1471586483322,
      "localizedAction": "Lock account",
      "localizedOption": "Lock account full",
      "localizedReason": "Community rules infraction",
      "notifyUser": false,
      "option": "Lock account full",
      "emailedUser": false,
      "phase": "modify",
      "reason": "Community rules infraction",
      "reasonCode": "FRAC"
    },
    "notifyUserOnEnd": true,
    "option": "Lock account full",
    "reason": "Community rules infraction",
    "reasonCode": "FRAC",
    "userActionId": "00000000-0000-0000-0000-000000000010"
  }
}

Retrieve a Previously Taken Action

This API is used to retrieve a User Action that was previously taken on a User, this can be thought of as the log or historical record.

Request

Retrieve a specific User Action Log by Id.

URI

GET /api/user/action/{actionId}

Request Parameters

actionId [UUID] Required

The unique Id of the Action to retrieve.

Request Headers

X-FusionAuth-TenantId [String] Optional

The unique Id of the tenant used to scope this API request.

The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

See Making an API request using a Tenant Id for additional information.

Retrieve all the Actions for a specific User by the User Id.

URI

GET /api/user/action?userId={userId}&active={active}&preventingLogin={preventingLogin}

Request Parameters

userId [UUID] Required

The unique Id of the User for which to retrieve all of the Actions.

active [Boolean] Optional

When this parameter is provided and set to true, only active actions will be returned. When this parameter is provided and set to false, only the inactive actions will be returned. When this parameter is omitted, all actions will be returned.

An active action is a time based action that has not yet expired or been canceled. An inactive action is either a time based action that has expired, canceled or an action that is not time based.

This parameter and preventingLogin are mutually exclusive.

preventingLogin [Boolean] Optional Available since 1.4.0

When this value is provided and set to true, only active actions that are preventing the user from login will be returned. Omitting this parameter, or setting this parameter to false does not affect the API behavior.

This parameter and active are mutually exclusive because an action that is preventing login is always active.

Request Headers

X-FusionAuth-TenantId [String] Optional

The unique Id of the tenant used to scope this API request.

The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

See Making an API request using a Tenant Id for additional information.

Response

The response for this API contains either a single User Action Log or a list of User Actions Logs for a User. If you specified an actionId on the URI the response will contain the User Action Log for that Id. If you pass in a userId as a URL parameter the response will contain all of the User Action Logs for that User. Both responses are defined below along with an example JSON response.

Table 2. Response Codes
Code Description

200

The request was successful. The response will contain a JSON body.

400

The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors.

401

You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

404

The object you requested doesn’t exist. The response will be empty.

500

There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

503

The search index is not available or encountered an exception so the request cannot be completed. The response will contain a JSON body.

Response Body

action.actioneeUserId [UUID]

The Id of the User that was actioned.

action.actionerUserId [UUID]

The Id of the User that took the action on the User. If the action was initiated by FusionAuth this value will not be provided.

action.applicationIds [Array<UUID>]

This parameter if provided specifies the scope of the User Action. When an Action is scoped to one or more Applications the Application Ids will be provided in this parameter.

action.comment [String]

An optional comment provided when the Action was created, updated or canceled. This value will always be the last comment set on the action, see history for previous values.

action.emailUserOnEnd [Boolean]

Whether FusionAuth will email the User when a time-based User Actions expires.

action.endEventSent [Boolean]

Whether FusionAuth will send events when a time-based User Actions expires.

action.expiry [Long]

The expiration instant of the User Action.

action.history.historyItems [Array]

The historical data for the User Action Log. Each time the User Action is modified or when the User Action is canceled a new historyItem is recorded.

action.history.historyItems[x].actionerUserId [UUID]

The Id of the User that took the modified (or created) the User Action.

action.history.historyItems[x].comment [String]

An optional comment provided when the Action was created, updated or canceled.

action.history.historyItems[x].createInstant [Long]

The instant that this historical modification or creation was performed.

action.history.historyItems[x].expiry [Long]

The instant that the User Action expired at previously.

action.id [UUID]

The Id of the User Action record.

action.insertInstant [Long]

The instant that the User Action was taken.

action.localizedOption [String]

The localized version of the User Action Option that was selected by the actioner.

action.localizedReason [String]

The localized version of the User Action Reason that was selected by the actioner.

action.notifyUserOnEnd [String]

Whether or not FusionAuth will send events to registered Webhooks when a time-based User Action expires.

action.option [String]

The non-localized version of the User Action Option that was selected by the actioner.

action.reason [String]

The non-localized version of the User Action Reason that was selected by the actioner.

action.reasonCode [String]

The User Action Reason code that was selected by the actioner.

action.userActionId [UUID]

The unique Id of the User Action. This Id can be used to retrieve the User Action using the Retrieve a User Action API.

Example Response JSON for a Single User Action
{
  "action": {
    "actioneeUserId": "00000000-0000-0000-0000-000000000001",
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "applicationIds": [
      "00000000-0000-0000-0000-000000000042",
      "00000000-0000-0000-0000-000000000043"
    ],
    "comment": "This user is still being a jerk",
    "createInstant": 1471786483322,
    "emailUserOnEnd": false,
    "endEventSent": false,
    "expiry": 1471586483322,
    "historyItems": [
      {
        "actionerUserId": "00000000-0000-0000-0000-000000000002",
        "comment": "This user is still being a jerk",
        "createInstant": 1471786433322,
        "expiry": 1471496483322
      }
    ],
    "id": "00000000-0000-0000-0000-013500000002",
    "insertInstant": 1595361142909,
    "lastUpdateInstant": 1595361143101,
    "localizedOption": "Lock account full",
    "localizedReason": "Community rules infraction",
    "notifyUserOnEnd": true,
    "option": "Lock account full",
    "reason": "Community rules infraction",
    "reasonCode": "FRAC",
    "userActionId": "00000000-0000-0000-0000-000000000010"
  }
}

Response Body

actions [Array]

The list of User Actions.

actions[x].actioneeUserId [UUID]

The Id of the User that was actioned.

actions[x].actionerUserId [UUID]

The Id of the User that was took the action on the User.

actions[x].applicationIds [Array<UUID>]

The list of Application ids that the action was performed in.

actions[x].comment [String]

The comment left by the actioner. This is the last User to touch the User Action (i.e. if the User Action was updated, this will be the comment left by the User that updated it).

actions[x].emailUserOnEnd [Boolean]

Whether FusionAuth will email the User when a time-based User Actions expires.

actions[x].endEventSent [Boolean]

Whether FusionAuth will send events when a time-based User Actions expires.

actions[x].expiry [Long]

The expiration instant of the User Action.

actions[x].history.historyItems [Array]

The historical data for the User Action. Each time the User Action is modified a new historyItem is added to the list.

actions[x].history.historyItems[x].actionerUserId [UUID]

The Id of the User that took the modified (or created) the User Action.

actions[x].history.historyItems[x].comment [String]

The message that the actioner added when they modified (or created) this User Action.

actions[x].history.historyItems[x].createInstant [Long]

The instant that this historical modification or creation was performed.

actions[x].history.historyItems[x].expiry [Long]

The instant that the User Action expired at previously.

actions[x].id [UUID]

The Id of the User Action.

action[x].insertInstant [Long]

The instant that the User Action was taken.

actions[x].localizedOption [String]

The localized version of the User Action Option that was selected by the actioner.

actions[x].localizedReason [String]

The localized version of the User Action Reason that was selected by the actioner.

actions[x].notifyUserOnEnd [String]

Whether or not FusionAuth will send events to registered Webhooks when a time-based User Action expires.

actions[x].option [String]

The non-localized version of the User Action Option that was selected by the actioner.

actions[x].reason [String]

The non-localized version of the User Action Reason that was selected by the actioner.

actions[x].reasonCode [String]

The User Action Reason code that was selected by the actioner.

Example Response JSON for all the User Actions
{
  "actions": [
    {
      "actioneeUserId": "00000000-0000-0000-0000-000000000001",
      "actionerUserId": "00000000-0000-0000-0000-000000000002",
      "applicationIds": [
        "00000000-0000-0000-0000-000000000042",
        "00000000-0000-0000-0000-000000000043"
      ],
      "comment": "This user is still being a jerk",
      "createInstant": 1471786483322,
      "emailUserOnEnd": false,
      "endEventSent": false,
      "expiry": 1471586483322,
      "historyItems": [
        {
          "actionerUserId": "00000000-0000-0000-0000-000000000002",
          "comment": "This user is still being a jerk",
          "createInstant": 1471786433322,
          "expiry": 1471496483322
        }
      ],
      "id": "00000000-0000-0000-0000-013500000002",
      "insertInstant": 1595361142909,
      "lastUpdateInstant": 1595361143101,
      "localizedOption": "Lock account full",
      "localizedReason": "Community rules infraction",
      "notifyUserOnEnd": true,
      "option": "Lock account full",
      "reason": "Community rules infraction",
      "reasonCode": "FRAC",
      "userActionId": "00000000-0000-0000-0000-000000000010"
    }
  ]
}

Update a Previously Taken Action

This API is used to update a User Action that was previously taken on a User. User Actions are the method that FusionAuth uses to discipline, reward and interact with Users.

Request

Update an in progress Action by Id

URI

PUT /api/user/action/{actionId}

Request Parameters

actionId [UUID] Required

The Id of the User Action being updated.

Request Headers

X-FusionAuth-TenantId [String] Optional

The unique Id of the tenant used to scope this API request.

The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

See Making an API request using a Tenant Id for additional information.

Request Body

action.actionerUserId [UUID] Required

The Id of the User that is taking the action on the User.

action.comment [String] Optional

The comment left by the actioner.

action.emailUser [Boolean] Optional defaults to false

Whether FusionAuth should send an email to the User.

action.expiry [Long] Optional

The expiration instant of this User Action. This is required for time-based User Actions.

action.notifyUser [Boolean] Optional defaults to false

The notifyUser flag that is passed along in any events FusionAuth sends to registered Webhooks.

broadcast [Boolean] Optional defaults to false

Whether or not FusionAuth will broadcast the User Action to any registered Webhooks.

Example Request JSON
{
  "broadcast": true,
  "action": {
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "comment": "This user is still being a jerk",
    "emailUser": true,
    "expiry": 1471586483322,
    "notifyUser": true
  }
}

Response

The response for this API contains the User Action along with any event and email information that was generated by FusionAuth.

Table 3. Response Codes
Code Description

200

The request was successful. The response will contain a JSON body.

400

The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors.

401

You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

404

The object you are trying to updated doesn’t exist. The response will be empty.

500

There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

503

The search index is not available or encountered an exception so the request cannot be completed. The response will contain a JSON body.

504

One or more Webhook endpoints returned an invalid response or were unreachable. Based on the transaction configuration for this event your action cannot be completed. A stack trace is provided and logged in the FusionAuth log files.

Response Body

action.actioneeUserId [UUID]

The Id of the User that was actioned.

action.actionerUserId [UUID]

The Id of the User that took the action on the User. If the action was initiated by FusionAuth this value will not be provided.

action.applicationIds [Array<UUID>]

This parameter if provided specifies the scope of the User Action. When an Action is scoped to one or more Applications the Application Ids will be provided in this parameter.

action.comment [String]

An optional comment provided when the Action was created, updated or canceled. This value will always be the last comment set on the action, see history for previous values.

action.emailUserOnEnd [Boolean]

Whether FusionAuth will email the User when a time-based User Actions expires.

action.endEventSent [Boolean]

Whether FusionAuth will send events when a time-based User Actions expires.

action.expiry [Long]

The expiration instant of the User Action.

action.history.historyItems [Array]

The historical data for the User Action Log. Each time the User Action is modified or when the User Action is canceled a new historyItem is recorded.

action.history.historyItems[x].actionerUserId [UUID]

The Id of the User that took the modified (or created) the User Action.

action.history.historyItems[x].comment [String]

An optional comment provided when the Action was created, updated or canceled.

action.history.historyItems[x].createInstant [Long]

The instant that this historical modification or creation was performed.

action.history.historyItems[x].expiry [Long]

The instant that the User Action expired at previously.

action.id [UUID]

The Id of the User Action record.

action.insertInstant [Long]

The instant that the User Action was taken.

action.localizedOption [String]

The localized version of the User Action Option that was selected by the actioner.

action.localizedReason [String]

The localized version of the User Action Reason that was selected by the actioner.

action.notifyUserOnEnd [String]

Whether or not FusionAuth will send events to registered Webhooks when a time-based User Action expires.

action.option [String]

The non-localized version of the User Action Option that was selected by the actioner.

action.reason [String]

The non-localized version of the User Action Reason that was selected by the actioner.

action.reasonCode [String]

The User Action Reason code that was selected by the actioner.

action.userActionId [UUID]

The unique Id of the User Action. This Id can be used to retrieve the User Action using the Retrieve a User Action API.

Example Response JSON for a Single User Action
{
  "action": {
    "actioneeUserId": "00000000-0000-0000-0000-000000000001",
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "applicationIds": [
      "00000000-0000-0000-0000-000000000042",
      "00000000-0000-0000-0000-000000000043"
    ],
    "comment": "This user is still being a jerk",
    "createInstant": 1471786483322,
    "emailUserOnEnd": false,
    "endEventSent": false,
    "expiry": 1471586483322,
    "historyItems": [
      {
        "actionerUserId": "00000000-0000-0000-0000-000000000002",
        "comment": "This user is still being a jerk",
        "createInstant": 1471786433322,
        "expiry": 1471496483322
      }
    ],
    "id": "00000000-0000-0000-0000-013500000002",
    "insertInstant": 1595361142909,
    "lastUpdateInstant": 1595361143101,
    "localizedOption": "Lock account full",
    "localizedReason": "Community rules infraction",
    "notifyUserOnEnd": true,
    "option": "Lock account full",
    "reason": "Community rules infraction",
    "reasonCode": "FRAC",
    "userActionId": "00000000-0000-0000-0000-000000000010"
  }
}

Cancel a Previously Taken Action

This API is used to cancel a User Action that was previously taken on a User. User Actions are the method that FusionAuth uses to discipline, reward and interact with Users.

Request

Cancel in progress Action by Id

URI

DELETE /api/user/action/{actionId}

Request Parameters

actionId [UUID] Required

The Id of the User Action being canceled.

Request Headers

X-FusionAuth-TenantId [String] Optional

The unique Id of the tenant used to scope this API request.

The tenant Id is not required on this request even when more than one tenant has been configured because the tenant can be identified based upon the request parameters or it is otherwise not required.

Specify a tenant Id on this request when you want to ensure the request is scoped to a specific tenant. The tenant Id may be provided through this header or by using a tenant locked API key to achieve the same result.

See Making an API request using a Tenant Id for additional information.

Request Body

action.actionerUserId [UUID] Required

The Id of the User that is taking the action on the User.

action.comment [String] Optional

The comment left by the actioner.

action.emailUser [Boolean] Optional defaults to false

Whether FusionAuth should send an email to the User.

action.expiry [Long] Optional

The expiration instant of this User Action. This is required for time-based User Actions.

action.notifyUser [Boolean] Optional defaults to false

The notifyUser flag that is passed along in any events FusionAuth sends to registered Webhooks.

broadcast [Boolean] Optional defaults to false

Whether or not FusionAuth will broadcast the User Action to any registered Webhooks.

Example Request JSON
{
  "broadcast": true,
  "action": {
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "comment": "This user is behaving now",
    "emailUser": true,
    "notifyUser": true
  }
}

Response

The response for this API contains the User Action along with any event and email information that was generated by FusionAuth.

Table 4. Response Codes
Code Description

200

The request was successful. The response will be empty.

400

The request was invalid and/or malformed. The response will contain an Errors JSON Object with the specific errors.

401

You did not supply a valid Authorization header. The header was omitted or your API key was not valid. The response will be empty. See Authentication.

404

The object you are trying to delete doesn’t exist. The response will be empty.

500

There was an internal error. A stack trace is provided and logged in the FusionAuth log files. The response will be empty.

503

The search index is not available or encountered an exception so the request cannot be completed. The response will contain a JSON body.

504

One or more Webhook endpoints returned an invalid response or were unreachable. Based on the transaction configuration for this event your action cannot be completed. A stack trace is provided and logged in the FusionAuth log files.

Response Body

action.actioneeUserId [UUID]

The Id of the User that was actioned.

action.actionerUserId [UUID]

The Id of the User that took the action on the User. If the action was initiated by FusionAuth this value will not be provided.

action.applicationIds [Array<UUID>]

This parameter if provided specifies the scope of the User Action. When an Action is scoped to one or more Applications the Application Ids will be provided in this parameter.

action.comment [String]

An optional comment provided when the Action was created, updated or canceled. This value will always be the last comment set on the action, see history for previous values.

action.emailUserOnEnd [Boolean]

Whether FusionAuth will email the User when a time-based User Actions expires.

action.endEventSent [Boolean]

Whether FusionAuth will send events when a time-based User Actions expires.

action.expiry [Long]

The expiration instant of the User Action.

action.history.historyItems [Array]

The historical data for the User Action Log. Each time the User Action is modified or when the User Action is canceled a new historyItem is recorded.

action.history.historyItems[x].actionerUserId [UUID]

The Id of the User that took the modified (or created) the User Action.

action.history.historyItems[x].comment [String]

An optional comment provided when the Action was created, updated or canceled.

action.history.historyItems[x].createInstant [Long]

The instant that this historical modification or creation was performed.

action.history.historyItems[x].expiry [Long]

The instant that the User Action expired at previously.

action.id [UUID]

The Id of the User Action record.

action.insertInstant [Long]

The instant that the User Action was taken.

action.localizedOption [String]

The localized version of the User Action Option that was selected by the actioner.

action.localizedReason [String]

The localized version of the User Action Reason that was selected by the actioner.

action.notifyUserOnEnd [String]

Whether or not FusionAuth will send events to registered Webhooks when a time-based User Action expires.

action.option [String]

The non-localized version of the User Action Option that was selected by the actioner.

action.reason [String]

The non-localized version of the User Action Reason that was selected by the actioner.

action.reasonCode [String]

The User Action Reason code that was selected by the actioner.

action.userActionId [UUID]

The unique Id of the User Action. This Id can be used to retrieve the User Action using the Retrieve a User Action API.

Example Response JSON for a Single User Action
{
  "action": {
    "actioneeUserId": "00000000-0000-0000-0000-000000000001",
    "actionerUserId": "00000000-0000-0000-0000-000000000002",
    "applicationIds": [
      "00000000-0000-0000-0000-000000000042",
      "00000000-0000-0000-0000-000000000043"
    ],
    "comment": "This user is behaving now",
    "createInstant": 1471786483322,
    "emailUserOnEnd": false,
    "endEventSent": false,
    "expiry": 1471586483322,
    "historyItems": [
      {
        "actionerUserId": "00000000-0000-0000-0000-000000000002",
        "comment": "This user is being a jerk",
        "createInstant": 1471786433322,
        "expiry": 1471496483322
      },
      {
        "actionerUserId": "00000000-0000-0000-0000-000000000002",
        "comment": "This user is still being a jerk",
        "createInstant": 1471786433322,
        "expiry": 1471496483322
      }
    ],
    "id": "00000000-0000-0000-0000-013500000003",
    "insertInstant": 1595361142909,
    "event": {
      "action": "Lock account full",
      "actionId": "00000000-0000-0000-0000-000000000010",
      "actioneeUserId": "00000000-0000-0000-0000-000000000001",
      "actionerUserId": "00000000-0000-0000-0000-000000000002",
      "comment": "This user is behaving now",
      "createInstant": 1471786483322,
      "email": {
        "from": {
          "address": "support@fusionauth.io",
          "display": "FusionAuth Support"
        },
        "html": "...",
        "subject": "You account has been unlocked",
        "text": "...",
        "to": {
          "address": "foo@bar.com",
          "display": "Foo Jones"
        }
      },
      "expiry": 1471586483322,
      "lastUpdateInstant": 1595361143101,
      "localizedAction": "Lock account",
      "localizedOption": "Lock account full",
      "localizedReason": "Community rules infraction",
      "notifyUser": false,
      "option": "Lock account full",
      "emailedUser": false,
      "phase": "cancel",
      "reason": "Community rules infraction",
      "reasonCode": "FRAC"
    },
    "notifyUserOnEnd": true,
    "option": "Lock account full",
    "reason": "Community rules infraction",
    "reasonCode": "FRAC",
    "userActionId": "00000000-0000-0000-0000-000000000010"
  }
}

Quick Links

  • Download
  • Pricing
  • Enterprise Sales FAQ
  • Contact Us
  • Jobs (come work with us)
  • My Account

Resources

  • Docs
  • Blog
  • Community & Support
  • Upgrade from SaaS
  • Upgrade from Homegrown
  • Upgrade from Open Source

Everything Else

  • Privacy Policy
  • Product Privacy Policy
  • License
  • License FAQ
  • Security (contact, bug bounty, etc)
  • Technical Support

Connect with Us

logo
Subscribe for Updates
We only send dev friendly newsletters. No marketing fluff!
© 2020 FusionAuth