ForgeRock Users API

Query user entitlement data and recommendations

Documentation

Specifications

Other Resources

OpenAPI Specification

forgerock-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ForgeRock Access Management Access Requests Users API
  description: REST API for ForgeRock Access Management (AM) providing authentication, authorization, session management, and policy evaluation. Supports OAuth 2.0 and OpenID Connect flows, authentication trees/journeys, policy-based authorization decisions, and realm management.
  version: 7.3.0
  contact:
    name: ForgeRock
    url: https://www.forgerock.com
  license:
    name: Proprietary
    url: https://www.forgerock.com/terms
  x-provider: forgerock
  x-api: access-management
servers:
- url: https://{deployment}/am
  description: ForgeRock Access Management server
  variables:
    deployment:
      default: am.example.com
      description: The AM deployment hostname
security:
- ssoToken: []
- bearerAuth: []
tags:
- name: Users
  description: Query user entitlement data and recommendations
paths:
  /api/users/{userId}/entitlements:
    get:
      operationId: listUserEntitlements
      summary: ForgeRock List user entitlements
      description: Retrieve all entitlements assigned to a specific user with their confidence scores and justification data.
      tags:
      - Users
      parameters:
      - name: userId
        in: path
        required: true
        description: The user identifier
        schema:
          type: string
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/Offset'
      - name: confidenceThreshold
        in: query
        description: Filter by minimum confidence score
        schema:
          type: number
      responses:
        '200':
          description: List of user entitlements with confidence scores
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserEntitlementList'
  /api/users/{userId}/recommendations:
    get:
      operationId: getUserRecommendations
      summary: ForgeRock Get user recommendations
      description: Get recommended entitlements for a user based on their attributes and the AI model's predictions.
      tags:
      - Users
      parameters:
      - name: userId
        in: path
        required: true
        description: The user identifier
        schema:
          type: string
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Entitlement recommendations for the user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecommendationList'
  /api/users:
    get:
      operationId: listUsers
      summary: List directory users
      description: Query user entries in the directory. Supports CREST query filters which are translated to LDAP search operations with appropriate filter expressions.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/QueryFilter'
      - $ref: '#/components/parameters/PageSize_2'
      - $ref: '#/components/parameters/PagedResultsCookie'
      - $ref: '#/components/parameters/SortKeys'
      - $ref: '#/components/parameters/Fields'
      responses:
        '200':
          description: List of user entries
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserQueryResult'
        '400':
          description: Invalid query filter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      operationId: createUser
      summary: Create a directory user
      description: Create a new user entry in the directory. The JSON resource is mapped to an LDAP entry with appropriate object classes and attributes.
      tags:
      - Users
      requestBody:
        required: true
        description: The user entry to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          description: User created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Invalid user data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: User already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/users/{userId}:
    post:
      operationId: userAction
      summary: Perform a user action
      description: Perform actions on a user entry such as password reset or password change via _action query parameter.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/UserId'
      - name: _action
        in: query
        required: true
        description: The action to perform
        schema:
          type: string
          enum:
          - resetPassword
          - modifyPassword
      requestBody:
        description: Action-specific request body
        content:
          application/json:
            schema:
              type: object
              properties:
                oldPassword:
                  type: string
                  description: Current password (for modifyPassword)
                newPassword:
                  type: string
                  description: New password
      responses:
        '200':
          description: Action completed
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    QueryFilter:
      name: _queryFilter
      in: query
      description: CREST query filter expression, translated to an LDAP filter (e.g., uid eq "jdoe" becomes (uid=jdoe))
      schema:
        type: string
    PagedResultsCookie:
      name: _pagedResultsCookie
      in: query
      description: Cookie from a previous page for server-side paging
      schema:
        type: string
    Offset:
      name: offset
      in: query
      description: Offset for pagination
      schema:
        type: integer
        minimum: 0
        default: 0
    SortKeys:
      name: _sortKeys
      in: query
      description: Comma-separated sort fields
      schema:
        type: string
    PageSize:
      name: maxResults
      in: query
      description: Maximum number of results to return
      schema:
        type: integer
        minimum: 1
        default: 25
    UserId:
      name: userId
      in: path
      required: true
      description: The user identifier (maps to LDAP uid or _id)
      schema:
        type: string
    Fields:
      name: _fields
      in: query
      description: Comma-separated list of fields to return
      schema:
        type: string
    PageSize_2:
      name: _pageSize
      in: query
      description: Number of results per page
      schema:
        type: integer
        minimum: 1
  schemas:
    ErrorResponse:
      type: object
      description: Standard CREST error response
      properties:
        code:
          type: integer
        reason:
          type: string
        message:
          type: string
    RecommendationList:
      type: object
      description: Entitlement recommendations
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              userId:
                type: string
              userName:
                type: string
              entitlementId:
                type: string
              entitlementName:
                type: string
              application:
                type: string
              confidenceScore:
                type: number
                description: Predicted confidence score
              drivingAttributes:
                type: object
                additionalProperties:
                  type: string
        totalResults:
          type: integer
    UserEntitlementList:
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              entitlementId:
                type: string
              entitlementName:
                type: string
              application:
                type: string
              confidenceScore:
                type: number
              drivingAttributes:
                type: object
                additionalProperties:
                  type: string
              justification:
                type: string
                description: AI-generated justification for the assignment
        totalResults:
          type: integer
    UserQueryResult:
      type: object
      properties:
        result:
          type: array
          items:
            $ref: '#/components/schemas/User'
        resultCount:
          type: integer
        pagedResultsCookie:
          type: string
        totalPagedResults:
          type: integer
    User:
      type: object
      description: A directory user entry mapped from LDAP to JSON via HDAP
      properties:
        _id:
          type: string
          description: User identifier (mapped from LDAP uid)
        _rev:
          type: string
          description: Entry revision for MVCC
          readOnly: true
        userName:
          type: string
          description: Login username
        givenName:
          type: string
          description: First name
        sn:
          type: string
          description: Surname / last name
        cn:
          type: string
          description: Common name (full name)
        mail:
          type: string
          format: email
          description: Email address
        telephoneNumber:
          type: string
          description: Phone number
        description:
          type: string
          description: User description
        memberOf:
          type: array
          description: Groups this user belongs to
          readOnly: true
          items:
            type: string
        userPassword:
          type: string
          format: password
          description: Password (write-only, stored hashed)
          writeOnly: true
  securitySchemes:
    ssoToken:
      type: apiKey
      in: header
      name: iPlanetDirectoryPro
      description: AM SSO token obtained from authentication
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 access token