Elastic Path Authentication Realms API

An authentication realm is a container that consists of the following: - Users - Represented by [User Authentication Info](/docs/api/single-sign-on/user-authentication-infos) objects - Authentication profiles - Ways for the users to authenticate, such as one or more [OpenID Connect Profiles](/docs/api/single-sign-on/oidc-profiles) or [Password Profiles](/docs/api/single-sign-on/password-profiles) - Mappings between users and authentication profiles - [User Authentication OpenID Connect Profile Info](/docs/api/single-sign-on/user-authentication-oidc-profile-infos) or [User Authentication Password Profile Infos](/docs/api/single-sign-on/user-authentication-password-profile-infos) Here's a domain diagram showing these relationships ![authentication realm](/assets/authentication-realm-domain.png) Composable Commerce comes with three per-store pre-set realms: - Buyer Organization. For customers: users who buy products from your store. - Merchant Organization. For administrators: users who log in to Commerce Manager to modify the store’s settings or catalog. - Account Management Realm. For account members: users who buy products from your store on behalf of accounts. Password profiles are only available for account management realm.

OpenAPI Specification

elastic-path-authentication-realms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 25.1126.6886238
  x-version-timestamp: 2025-11-26 19:10:23+00:00
  title: Addresses Introduction Account Addresses Authentication Realms API
  description: 'The Addresses API allows you to organize account addresses. Addresses are a sub-resource of `account` resources, an account can have multiple addresses, such as home, work, and neighbour.


    You can use an account address with either [client_credentials access token](/docs/api/authentication/create-an-access-token) or a combination of [implicit access token](/docs/api/authentication/create-an-access-token) and [Account Management authentication](/docs/api/accounts/post-v-2-account-members-tokens) token.

    '
  contact:
    name: Elastic Path
    url: https://www.elasticpath.com
    email: support@elasticpath.com
  license:
    url: https://elasticpath.dev
    name: MIT
servers:
- url: https://useast.api.elasticpath.com
  description: US East
- url: https://euwest.api.elasticpath.com
  description: EU West
security:
- BearerToken: []
tags:
- name: Authentication Realms
  description: "An authentication realm is a container that consists of the following:\n\n  - Users -  Represented by [User Authentication Info](/docs/api/single-sign-on/user-authentication-infos) objects\n  - Authentication profiles - Ways for the users to authenticate, such as one or more [OpenID Connect Profiles](/docs/api/single-sign-on/oidc-profiles) or [Password Profiles](/docs/api/single-sign-on/password-profiles)\n  - Mappings between users and authentication profiles - [User Authentication OpenID Connect Profile Info](/docs/api/single-sign-on/user-authentication-oidc-profile-infos) or [User Authentication Password Profile Infos](/docs/api/single-sign-on/user-authentication-password-profile-infos)\n\nHere's a domain diagram showing these relationships\n![authentication realm](/assets/authentication-realm-domain.png)\n\nComposable Commerce comes with three per-store pre-set realms:\n  - Buyer Organization. For customers: users who buy products from your store.\n  - Merchant Organization. For administrators: users who log in to Commerce Manager to modify the store’s settings or catalog.\n  - Account Management Realm. For account members: users who buy products from your store on behalf of accounts. Password profiles are only available for account management realm.\n"
  externalDocs:
    url: https://elasticpath.dev/docs/commerce-cloud/authentication/single-sign-on/authentication-realms
paths:
  /v2/authentication-realms:
    get:
      tags:
      - Authentication Realms
      summary: Get all Authentication Realms
      description: 'Retrieve a list of all authentication realms configured for your store.

        Authentication Realms allow you to configure authentication options and manage single sign-on settings. Each realm contains users, authentication profiles, and mappings between users and authentication profiles.

        '
      operationId: get-v2-authentication-realms
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-offset'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AuthenticationRealmResponse'
                  meta:
                    $ref: '#/components/schemas/MetaList'
                  links:
                    type: object
                    properties:
                      current:
                        description: Always the current page.
                        type: string
                        format: uri
                        example: https://euwest.api.elasticpath.com/v2/authentication-realms/?page[offset]=0&page[limit]=25
                      first:
                        description: Always the first page.
                        type: string
                        format: uri
                        example: https://euwest.api.elasticpath.com/v2/authentication-realms/?page[offset]=0&page[limit]=25
                      last:
                        description: Always null if there is only one page.
                        type:
                        - string
                        - 'null'
                        format: uri
                        example: https://euwest.api.elasticpath.com/v2/authentication-realms/?page[offset]=0&page[limit]=25
                      next:
                        description: Always null if there is only one page.
                        type:
                        - string
                        - 'null'
                        format: uri
                        example: null
                      prev:
                        description: Always null if the user is on the first page.
                        type:
                        - string
                        - 'null'
                        format: uri
                        example: null
              examples:
                list_authentication_realms:
                  summary: List of authentication realms
                  value:
                    data:
                    - id: 45928070-44a6-448b-8246-a85aa35320af
                      type: authentication-realm
                      name: Buyer Organization
                      duplicate_email_policy: allowed
                      redirect_uris:
                      - https://example-shop.com/oidc/callback
                      relationships:
                        origin:
                          data:
                            id: '0'
                            type: customer-authentication-settings
                    - id: bbd4a3f8-6a93-44a2-8f4f-2a1e3f8b3b9c
                      type: authentication-realm
                      name: Merchant Organization
                      duplicate_email_policy: disallowed
                      redirect_uris:
                      - https://cm.example.com/oidc/callback
                      relationships:
                        origin:
                          data:
                            id: '1'
                            type: merchant-realm-mappings
                    meta:
                      results:
                        total: 2
                      page:
                        limit: 25
                        offset: 0
                    links:
                      current: https://euwest.api.elasticpath.com/v2/authentication-realms/?page%5Boffset%5D=0&page%5Blimit%5D=25
                      first: https://euwest.api.elasticpath.com/v2/authentication-realms/?page%5Boffset%5D=0&page%5Blimit%5D=25
                      last: null
                      next: null
                      prev: null
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/authentication-realms/{realmId}:
    get:
      tags:
      - Authentication Realms
      summary: Get an Authentication Realm
      description: Retrieve a specific authentication realm by its ID.
      operationId: get-v2-authentication-realms-realmId
      parameters:
      - name: realmId
        in: path
        description: The ID of the authentication realm to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AuthenticationRealmResponse'
                  links:
                    $ref: '#/components/schemas/SelfLink'
              examples:
                get_authentication_realm:
                  summary: Authentication realm
                  value:
                    data:
                      id: 45928070-44a6-448b-8246-a85aa35320af
                      type: authentication-realm
                      name: Buyer Organization
                      duplicate_email_policy: allowed
                      redirect_uris:
                      - https://example-shop.com/oidc/callback
                      relationships:
                        origin:
                          data:
                            id: '0'
                            type: customer-authentication-settings
                    links:
                      self: https://euwest.api.elasticpath.com/v2/authentication-realms/45928070-44a6-448b-8246-a85aa35320af
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Authentication Realms
      summary: Update an Authentication Realm
      description: Update a specific authentication realm by its ID.
      operationId: put-v2-authentication-realms-realmId
      parameters:
      - name: realmId
        in: path
        description: The ID of the authentication realm to update.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/AuthenticationRealm'
              required:
              - data
            examples:
              Update an authentication realm:
                value:
                  data:
                    type: authentication-realm
                    name: updated-auth-realm
                    duplicate_email_policy: disallowed
                    redirect_uris:
                    - https://updated-example.com/callback
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AuthenticationRealmResponse'
                  links:
                    $ref: '#/components/schemas/SelfLink'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    MetaTimestamps:
      type: object
      properties:
        created_at:
          description: The date the resource is created.
          type: string
          format: date-time
          example: '2021-02-23T09:40:33.882Z'
        updated_at:
          description: The date the resource is updated.
          type: string
          format: date-time
          example: '2021-02-23T09:40:33.882Z'
    UUID:
      type: string
      description: The unique identifier.
      format: uuid
      example: deb6b25f-8451-4211-9a22-95610333df23
    MetaList:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/MetaListPage'
        results:
          $ref: '#/components/schemas/MetaListResults'
    MetaListResults:
      type: object
      properties:
        total:
          type: integer
          description: The total number of results after applying filters, if any, or all results.
          example: 1
    Error:
      type: object
      required:
      - status
      - title
      properties:
        title:
          type: string
          description: A brief summary of the error.
          examples:
          - Bad Request
        status:
          type: string
          format: string
          description: The HTTP response code of the error.
          examples:
          - '400'
        detail:
          type: string
          description: Optional additional detail about the error.
          examples:
          - The field 'name' is required
    SelfLink:
      type: object
      properties:
        self:
          description: A URL to the specific resource.
          type: string
          format: uri
    MetaListPage:
      type: object
      properties:
        limit:
          type: integer
          description: The maximum number of records per page for this response. You can set this value up to 100.
          example: 25
        current:
          type: integer
          description: The current page.
          example: 0
        offset:
          type: integer
          description: The current offset by number of records, not pages. Offset is zero-based.
          example: 0
        total:
          type: integer
          description: The total page count.
          example: 1
    ErrorResponse:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        links:
          $ref: '#/components/schemas/SelfLink'
    AuthenticationRealmResponse:
      allOf:
      - $ref: '#/components/schemas/AuthenticationRealm'
      - type: object
        properties:
          id:
            $ref: '#/components/schemas/UUID'
            description: The unique identifier for an Authentication Realm.
          meta:
            $ref: '#/components/schemas/MetaTimestamps'
            description: Additional information for this realm.
          links:
            type: object
            properties:
              self:
                description: A URL to the specific resource.
                type: string
                format: uri
                example: https://useast.api.elasticpath.com/v2/authentication-realms/deb6b25f-8451-4211-9a22-95610333df23
    AuthenticationRealm:
      type: object
      properties:
        type:
          type: string
          description: Specifies the type of object. Set this value to `authentication-realm`.
          const: authentication-realm
        name:
          type: string
          description: Specifies the name of the authentication realm.
          example: my-auth-realm
        duplicate_email_policy:
          type: string
          description: The values permitted for this parameter are, `allowed` or `api_only`. In Single Sign On (SSO) each user in the Identity Provider (IdP) has a unique identifier, but different IdPs might differ in whether distinct users can share the same email address. For the `allowed` setting, when a user with a new unique identifier signs in through SSO for the first time, the system creates a new user. However, for the `api_only` setting, the system assigns the new unique identifier to the existing user in the system, in this case both the old and new unique identifier from the IdP points to the same user in Commerce. The `api_only` setting is recommended only when all configured identity providers treat e-mail address as a unique identifier for the user, otherwise a user might get access to another user’s account and data. Thus the `api_only` value can simplify administration of users.
          enum:
          - allowed
          - disallowed
          - api_only
          example: allowed
        redirect_uris:
          type: array
          description: An array of Storefront URIs that can start Single Sign On authentication. These URIs must follow the rules for [redirection endpoints in OAuth 2.0.](https://tools.ietf.org/html/rfc6749#section-3.1.2) All URIs must start with https:// except for http://localhost.
          items:
            type: string
            format: uri
          example:
          - https://example.com/callback
        relationships:
          type: object
          description: Specifies the relationships for this authentication realm.
          properties:
            origin:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    id:
                      type: string
                      description: The ID of the origin entity.
                      example: '0'
                    type:
                      type: string
                      description: The type of the origin entity.
                      enum:
                      - customer-authentication-settings
                      - merchant-realm-mappings
                      - account_authentication_settings
      required:
      - type
      - name
  parameters:
    page-limit:
      name: page[limit]
      in: query
      description: The number of records per page.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 1
        maximum: 100
        default: 25
    page-offset:
      name: page[offset]
      in: query
      description: The number of records to offset the results by.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        default: 0
  responses:
    NotFoundError:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            not-found-error:
              value:
                errors:
                - title: Not Found
                  status: '404'
                  detail: Resource not found
    UnprocessableEntityError:
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unprocessable-entity-error:
              value:
                errors:
                - title: Unprocessable Entity
                  status: '422'
                  detail: Constraint violation
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthorized-error:
              value:
                errors:
                - title: Unauthorized
                  status: '401'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internal-server-error:
              summary: Internal server error
              value:
                errors:
                - title: Internal Server Error
                  status: '500'
                  detail: there was a problem processing your request
    BadRequestError:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            bad-request-error:
              value:
                errors:
                - title: Bad Request
                  status: '400'
                  detail: 'Validation failed: field ''Name'' on the ''min'' tag.'
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer