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

# Start a session

> Start a session by calling the overall authentication process. Session may be started on one call or it may require more user iteractions steps to finish authentication process.



## OpenAPI

````yaml /portal/Amdocs_Media-ULM-Released-resolved.yaml post /session/start
openapi: 3.0.1
info:
  title: Connect APIs
  description: >-
    The Connect/ULM APIs enables clients to manage all aspects against Connect's
    data entities that they are permitted to manage. The data entities supported
    include: (1) USER - a unique individual, (2) RUNTIME - endpoint to which
    services are delivered (e.g. mobile tablet, browser), (3) GROUP - a
    collection of user entities, (4) ACCOUNT - relationship between a USER and
    service provider, (5) SUBSCRIPTION - package of entitlements to a specific
    service, and (6) FEATURE - fine-grained entitlement that defines what a user
    can do for a particular service.


    The APIs offer endpoints for users to onboard, authenticate and manage their
    profile. Please review our OIDC APIs that can be accessed through an active
    web session within the application (i.e. any JavaScript running on the
    server itself) or through authorizing a client application through OIDC or
    OAuth 2.0.


    The majority of these APIs require a user context (session cookie or access
    token) to access their functionality.


    All of the APIs can be accessed via a organization specific domain that was
    provided to you during onboarding.
  version: Draft-GO
servers:
  - url: https://nxt-ulm-pdt.m1amdocs.io/platform/rest/v85
security:
  - cookieAuth: []
  - OIDC: []
tags:
  - name: Account
    description: ULM Account APIs enable standard CRUD operations on ULM account entities.
  - name: Authentication
    description: >-
      Connect authentication APIs open and close user sessions (user login and
      logout).
  - name: Group and Soft Profile
    description: >-
      Connect Group and Soft Profile APIs enable clients to perform group
      management and soft profile functions. A group is a collection of one or
      more Connect entities, typically a user entity. For example, a group can
      be a household that contains 4 users all within the same family. A Soft
      Profile User is a user that can be a minor user or guest user, and they
      are not required to sign up or subscribe to a service. For example, a Soft
      Profile User can be a minor that does not have an email and therefore can
      only access the services if the parent is first authenticated.
  - name: Process
    description: >-
      Connect Process APIs initiate process steps. Connect's library of
      processes include for example Onboarding with Email and Password. These
      processes are intended to provided an preset user journey that your UI can
      follow in steps. 


      A step can be an inital step, one of many subsequent steps, or a final
      step. Some processes may only require one step from start to end.
  - name: Runtime
    description: >-
      Connect Runtimes APIs enables retrieval of Devices that are used by Users
      to interact with ULM.
  - name: Subscription
    description: >-
      Connect Subscription APIs enable standard CRUD operations on a
      subscription entity.
  - name: User
    description: Connect User APIs enable standard CRUD operations on a user entity.
paths:
  /session/start:
    post:
      tags:
        - Authentication
      summary: Start a session
      description: >-
        Start a session by calling the overall authentication process. Session
        may be started on one call or it may require more user iteractions steps
        to finish authentication process.
      operationId: startUsingPOST
      requestBody:
        description: Login request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequestDto'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepActionResponseDto'
        '401':
          description: Authentication Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionStartResponse401'
components:
  schemas:
    LoginRequestDto:
      title: LoginRequestDto
      required:
        - authnIdentifier
        - credential
      type: object
      properties:
        authnIdentifier:
          type: string
          description: Connect authentication identifier
          example: john@example.com
        guid:
          type: string
        credential:
          type: string
          description: The password, PIN, or other login credential supplied by the user
          example: changeme
        captchaResponse:
          type: string
          description: Captcha response if captcha is enabled
          example: 03AOLTBLSSzhhrLdqCb
      description: >-
        The data model that contains the possible values to be provided in a
        login request. authIdentifier and credential are mandatory fields.
    StepActionResponseDto:
      title: StepAction
      type: object
      properties:
        displayMessage:
          type: string
          description: Optional display message
          example: Enter User Inputs
        parameters:
          type: object
          additionalProperties:
            type: string
            example: value1
          description: User input parameters
        processId:
          type: string
          description: >-
            The process identifier that links multiple API calls together. If a
            process halts because it requires additional data, then it assigns a
            process ID that can be referenced in subsequent calls in order to
            continue and complete the entire process.
          example: 640b4b3a-dbaf-4b73-abfb-979475aee0bb
        processName:
          type: string
          description: >-
            The name of the process which is being executed. This value is
            intended to be consumed by User Interfaces which may not always be
            aware of the current process being executed, owing to  factors such
            as a third-party redirect in the middle of the process destroying
            the UI's context.
          example: socialFederation.associateSocialMedia_v1.0
        stepName:
          type: string
          description: The step name
          example: PasswordPrompt
        lastStep:
          type: boolean
        output:
          type: object
          additionalProperties:
            type: object
          description: Information returned from previous step.
        runtimeId:
          $ref: '#/components/schemas/EntityId'
        userId:
          $ref: '#/components/schemas/EntityId'
        userAuthenticated:
          type: boolean
          description: For AuthenticationStepAction only.
      description: >-
        The API returns information about parameters that are required by the
        next process step (only if lastStep is false). Optionally information
        from the previous is returned in 'output'. For AuthenticationStepAction
        actions, it returns authenticated context information (userId,
        runtimeId, userAuthenticated). For AdminUser authentication actions the
        API also returns adminUser.
    SessionStartResponse401:
      type: object
      properties:
        operationErrors:
          type: array
          items:
            $ref: '#/components/schemas/SessionStartResponse401OperationErrors'
    EntityId:
      type: integer
      description: The unique ID of an entity.
      format: int64
      example: 1
    SessionStartResponse401OperationErrors:
      type: object
      properties:
        code:
          type: string
          enum:
            - authentication-required
            - user-profile-locked
            - user-activating
        message:
          type: string
          example: Bad Credentials
  securitySchemes:
    cookieAuth:
      type: apiKey
      name: JSESSIONID
      in: cookie
    OIDC:
      type: oauth2
      description: OAuth 2.0 Authentication
      flows:
        implicit:
          authorizationUrl: /oidc/authorize
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            offline_access: Requests that a refresh token be issued.
            entitlements: Enables the "entitlements" claim.
        password:
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            entitlements: Enables the "entitlements" claim.
        clientCredentials:
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            entitlements: Enables the "entitlements" claim.
        authorizationCode:
          authorizationUrl: /oidc/authorize
          tokenUrl: /oidc/token
          scopes:
            openid: >-
              Enables OIDC by requesting the ID Token. Without this scope, the
              request is merely OAuth 2.0
            profile: Requests the claims name, family_name, given_name, and picture
            email: Requests the claims email and email_verified
            phone: Requests the claims phone_number and phone_number_verified
            offline_access: Requests that a refresh token be issued.
            entitlements: Enables the "entitlements" claim.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.