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 Password Profiles 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: Password Profiles description: 'A `password_profile` resource represents a specific configuration that allows users to authenticate through username and password. Password Profiles support One-Time Password Tokens, which can be used to use passwordless login or password reset. An authentication realm can have multiple Password Profiles. You can use this flexibility in many ways. For instance, if you want to migrate an existing pool of users from another system with their own usernames and passwords, they can use one profile, while the rest of the users use another. Another use case is enabling shopper impersonation, where shoppers can authenticate using their own username and password in one profile. Meanwhile, admins can have a different username and password for the same user in a separate profile, shown as the "Impersonation Profile". This process can be automated using a Backend-For-Frontend (BFE) or One-Time Password Tokens. In the example shown below, both John and Joan can log in with their credentials, and an admin can also log in as Joan using the "Impersonation Profile". ![password profiles](/assets/password-profiles.png) ' paths: /v2/authentication-realms/{realmId}/password-profiles: get: tags: - Password Profiles summary: Get Password Profiles description: Retrieve password profiles for the specified authentication realm. operationId: get-v2-authentication-realms-realmId-password-profiles parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid - $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/PasswordProfileResponse' links: $ref: '#/components/schemas/PaginationLinks' meta: $ref: '#/components/schemas/PaginationMeta' examples: list_password_profiles: summary: List of password profiles value: data: - id: a2f6d4c0-1d2b-4b3a-9e5a-2f4b1c7d8e9f type: password_profile name: Default Passwords require_uppercase: true require_numbers: true min_length: 10 - id: b3e7f5a1-2c3d-4e4b-8f6a-3e5c2d8f9a0b type: password_profile name: Impersonation Profile require_uppercase: false require_numbers: false min_length: 8 meta: results: total: 2 page: limit: 25 offset: 0 links: current: https://euwest.api.elasticpath.com/v2/authentication-realms/45928070-44a6-448b-8246-a85aa35320af/password-profiles?page%5Boffset%5D=0&page%5Blimit%5D=25 first: https://euwest.api.elasticpath.com/v2/authentication-realms/45928070-44a6-448b-8246-a85aa35320af/password-profiles?page%5Boffset%5D=0&page%5Blimit%5D=25 last: null next: null prev: null '404': $ref: '#/components/responses/NotFoundError' '500': $ref: '#/components/responses/InternalServerError' post: tags: - Password Profiles summary: Create Password Profile description: Create a password profile for the specified authentication realm. operationId: post-v2-authentication-realms-realmId-password-profiles parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PasswordProfile' required: - data responses: '201': description: Created content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PasswordProfileResponse' 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' /v2/authentication-realms/{realmId}/password-profiles/{profileId}: get: tags: - Password Profiles summary: Get Password Profile description: Retrieve a specific password profile by ID. operationId: get-v2-authentication-realms-realmId-password-profiles-profileId parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid - name: profileId in: path description: The ID of the password profile. required: true schema: type: string format: uuid responses: '200': description: OK content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PasswordProfileResponse' links: $ref: '#/components/schemas/SelfLink' examples: get_password_profile: summary: Password profile value: data: id: a2f6d4c0-1d2b-4b3a-9e5a-2f4b1c7d8e9f type: password_profile name: Default Passwords links: self: https://euwest.api.elasticpath.com/v2/authentication-realms/45928070-44a6-448b-8246-a85aa35320af/password-profiles/a2f6d4c0-1d2b-4b3a-9e5a-2f4b1c7d8e9f '400': $ref: '#/components/responses/BadRequestError' '404': $ref: '#/components/responses/NotFoundError' '422': $ref: '#/components/responses/UnprocessableEntityError' '500': $ref: '#/components/responses/InternalServerError' put: tags: - Password Profiles summary: Update Password Profile description: Update a specific password profile by ID. operationId: put-v2-authentication-realms-realmId-password-profiles-profileId parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid - name: profileId in: path description: The ID of the password profile. required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PasswordProfile' required: - data responses: '200': description: OK content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PasswordProfileResponse' 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' delete: tags: - Password Profiles summary: Delete Password Profile description: Delete a specific password profile by ID. operationId: delete-v2-authentication-realms-realmId-password-profiles-profileId parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid - name: profileId in: path description: The ID of the password profile. required: true schema: type: string format: uuid responses: '204': description: No Content '400': $ref: '#/components/responses/BadRequestError' '404': $ref: '#/components/responses/NotFoundError' '422': $ref: '#/components/responses/UnprocessableEntityError' '500': $ref: '#/components/responses/InternalServerError' /v2/authentication-realms/{realmId}/password-profiles/{profileId}/one-time-password-token-request: post: tags: - Password Profiles summary: Create One-Time Password Token Request description: Create a one-time password token request for the specified password profile. operationId: post-v2-authentication-realms-realmId-password-profiles-profileId-one-time-password-token-request parameters: - name: realmId in: path description: The ID of the authentication realm. required: true schema: type: string format: uuid - name: profileId in: path description: The ID of the password profile. required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/OneTimePasswordTokenRequestInput' required: - data responses: '201': description: Created content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/OneTimePasswordTokenRequestResponse' '202': description: Accepted '400': $ref: '#/components/responses/BadRequestError' '404': $ref: '#/components/responses/NotFoundError' '422': $ref: '#/components/responses/UnprocessableEntityError' '500': $ref: '#/components/responses/InternalServerError' components: schemas: PasswordProfile: type: object properties: type: type: string description: Specifies the type of object. Set this value to `password_profile`. const: password_profile name: type: string description: Specifies the name of the password profile. example: my-password-profile username_format: type: string description: The format the `username` field must be in when creating or updating a [User Authentication Password Profile Info](/docs/api/single-sign-on/post-v-2-authentication-realms-realm-id-user-authentication-info-user-auth-info-id-user-authentication-password-profile-info). You can change the `username_format` setting, however, the changes apply only to the users created or updated after changing this setting. The new setting does not change the `username_format` for existing users. enum: - email - any x-enumDescriptions: email: The `username` must be a valid e-mail. any: The `username` can be any string. example: email enable_one_time_password_token: type: boolean description: This enables one time password token requests and events for authentication. This feature is disabled by default. example: true required: - type - name 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' OneTimePasswordTokenRequestResponse: allOf: - $ref: '#/components/schemas/OneTimePasswordTokenRequestInput' - type: object properties: id: type: string format: uuid description: The unique identifier for the one-time password token request. example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 token: type: string description: The generated one-time password token. example: '123456' expires_at: type: string format: date-time description: The expiration time of the token. example: '2023-12-01T10:30:00Z' meta: $ref: '#/components/schemas/MetaTimestamps' OneTimePasswordTokenRequestInput: type: object properties: type: const: one-time-password-token-request purpose: type: string description: An information field indicating why the user submitted this request. Your [integration](/docs/api/integrations/integrations-introduction) can inspect this field and can change subsequent processing. enum: - reset_password - passwordless_authentication x-enumDescriptions: reset_password: This request is because the user does not known their password. passwordless_authentication: This request is because the user wants to authenticate with passwordless authentication example: password_reset username: type: string description: The username for the token request. example: user@example.com required: - type - purpose - username PasswordProfileResponse: allOf: - $ref: '#/components/schemas/PasswordProfile' - type: object properties: id: $ref: '#/components/schemas/UUID' description: The unique identifier for a Password Profile. meta: $ref: '#/components/schemas/MetaTimestamps' description: Additional information for this password profile. 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/password-profiles/abc123 UUID: type: string description: The unique identifier. format: uuid example: deb6b25f-8451-4211-9a22-95610333df23 PaginationLinks: type: object properties: current: type: string format: uri description: The current page of data. first: type: - string - 'null' format: uri description: The first page of data. last: type: - string - 'null' format: uri description: The last page of data. next: type: - string - 'null' format: uri description: The next page of data. prev: type: - string - 'null' format: uri description: The previous page of data. self: type: string format: uri description: The current resource URL. 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 PaginationMeta: type: object properties: page: type: object properties: current: type: integer description: The current page number. example: 1 limit: type: integer description: The number of items per page. example: 25 offset: type: integer description: The number of items to offset by. example: 0 total: type: integer description: The total number of pages. example: 1 results: type: object properties: total: type: integer description: The total number of results after applying filters, if any, or all results. example: 1 ErrorResponse: type: object required: - errors properties: errors: type: array items: $ref: '#/components/schemas/Error' links: $ref: '#/components/schemas/SelfLink' 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 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