Elastic Path Accounts API

An Account represents the entity that participates in a Commerce transaction. Accounts can have Carts, Orders, Subscriptions, and Addresses.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/elastic-path-accounts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

elastic-path-accounts-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 Accounts 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: Accounts
  description: 'An Account represents the entity that participates in a Commerce transaction. Accounts can have Carts, Orders, Subscriptions, and Addresses.

    '
  externalDocs:
    url: https://elasticpath.dev/docs/commerce-cloud/accounts/using-account-management-api/account-management-api-overview
paths:
  /v2/accounts:
    post:
      tags:
      - Accounts
      summary: Create an Account
      description: With the account creation endpoint, you have the ability to create accounts which can optionally have another account as a parent.
      operationId: post-v2-accounts
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  allOf:
                  - $ref: '#/components/schemas/Account'
                  - $ref: '#/components/schemas/WritableParentId'
              required:
              - data
            examples:
              Create an account:
                value:
                  data:
                    type: account
                    name: acc-name
                    legal_name: acc-legal-name
                    registration_id: reg-id
                    external_ref: ext-ref
              Create a subaccount:
                value:
                  data:
                    type: account
                    name: acc-sub-name
                    legal_name: acc-legal-name, ltd
                    registration_id: reg-id
                    external_ref: ext-ref
                    parent_id: 96b1f750-55d3-4768-a3f8-adffba694a2c
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AccountResponse'
                  links:
                    type: object
                    properties:
                      self:
                        description: A URL to the specific resource.
                        type: string
                        example: https://useast.api.elasticpath.com/v2/accounts/deb6b25f-8451-4211-9a22-95610333df23
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - BearerToken: []
    get:
      tags:
      - Accounts
      summary: Get All Accounts
      description: 'Use this endpoint to Get all accounts.


        You can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).


        ### Filtering

        The following operators and attributes are available for [filtering](/guides/Getting-Started/filtering) accounts:


        | Attribute         | Operators                     | Example                                                       |

        |-------------------|-------------------------------|---------------------------------------------------------------|

        | `id`              | `lt`,`le`,`eq`,`gt`,`ge`,`in` | `eq(id,3fa85f64-5717-4562-b3fc-2c963f66afa6)`                 |

        | `created_at`      | `lt`,`le`,`eq`,`gt`,`ge`      | `ge(created_at,2024-04-29T00:00:00.000Z)`                     |

        | `updated_at`      | `lt`,`le`,`eq`,`gt`,`ge`      | `le(updated_at,2024-04-29T00:00:00.000Z)`                     |

        | `name`            | `eq`,`like`                   | `like(name,*swan*)`                                           |

        | `legal_name`      | `eq`,`like`                   | `like(legal_name,*swan*)`                                     |

        | `registration_id` | `eq`,`like`                   | `like(registration_id,00000000-0000-1000-8000-*)`             |

        | `external_ref`    | `eq`,`like`,`in`              | `like(external_ref,16be*)`                                    |

        | `account_tags`    | `contains`                    | `contains(account_tags,26beb787-be6e-40c3-bbae-9c645820b075)` |

        '
      operationId: get-v2-accounts
      parameters:
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-offset'
      - name: sort
        in: query
        description: Specifies the order in which accounts will be returned. For more information, see [Sorting](/guides/Getting-Started/sorting).
        required: false
        schema:
          type: string
          enum:
          - created_at
          - -created_at
          - id
          - -id
          - name
          - -name
          - updated_at
          - -updated_at
          example: id
          x-enumDescriptions:
            created_at: Sort in increasing order of creation
            -created_at: Sort in decreasing order of creation
            id: Sort in increasing order of ID
            -id: Sort in decreasing order of ID
            name: Sort in increasing order of name
            -name: Sort in decreasing order of name
            updated_at: Sort in increasing order of last update
            -updated_at: Sort in decreasing order of last update
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      allOf:
                      - $ref: '#/components/schemas/AccountResponse'
                      - type: object
                        properties:
                          links:
                            type: object
                            properties:
                              self:
                                description: A URL to the specific resource.
                                type: string
                                example: https://useast.api.elasticpath.com/v2/accounts/deb6b25f-8451-4211-9a22-95610333df23
                  meta:
                    $ref: '#/components/schemas/MetaList'
                  links:
                    type: object
                    properties:
                      current:
                        description: Always the current page.
                        type: string
                        format: uri
                        example: https://useast.api.elasticpath.com/v2/accounts?page[offset]=0&page[limit]=25
                      first:
                        description: Always the first page.
                        type: string
                        format: uri
                        example: https://useast.api.elasticpath.com/v2/accounts?page[offset]=0&page[limit]=25
                      last:
                        description: Always `null` if there is only one page.
                        type: string
                        format: uri
                        example: https://useast.api.elasticpath.com/v2/accounts?page[offset]=0&page[limit]=25
                      next:
                        description: Always `null` if there is only one page.
                        type: string
                        example: null
                      prev:
                        description: Always `null` if the user is on the first page.
                        type: string
                        example: null
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/accounts/{accountID}:
    get:
      tags:
      - Accounts
      summary: Get an Account
      description: View a specific account contained within your store
      operationId: get-v2-accounts-accountID
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AccountResponse'
                  links:
                    type: object
                    properties:
                      self:
                        description: A URL to the specific resource.
                        type: string
                        example: https://useast.api.elasticpath.com/v2/accounts/deb6b25f-8451-4211-9a22-95610333df23
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Accounts
      summary: Update an Account
      description: Update the information contained on an account.
      operationId: put-v2-accounts-accountID
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  allOf:
                  - $ref: '#/components/schemas/Account'
                  - $ref: '#/components/schemas/ReadOnlyParentId'
              required:
              - data
            examples:
              Update an Account:
                value:
                  data:
                    type: account
                    name: acc-name
                    legal_name: acc-legal-name
                    registration_id: reg-id
                    external_ref: ext-ref
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AccountResponse'
                  links:
                    type: object
                    properties:
                      self:
                        description: A URL to the specific resource.
                        type: string
                        format: uri
                        example: /v2/accounts/deb6b25f-8451-4211-9a22-95610333df23
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          example: 'Validation failed: field ''Name'' on the ''min'' tag.'
                        status:
                          type: string
                          example: '400'
                        title:
                          type: string
                          example: Bad Request
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          example: account not found
                        status:
                          type: string
                          example: '404'
                        title:
                          type: string
                          example: Not Found
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Accounts
      summary: Delete an Account
      description: Delete a specific account within a store
      operationId: delete-v2-accounts-accountID
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '204':
          description: No Content
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/accounts/{accountID}/relationships/account-tags:
    get:
      tags:
      - Accounts
      summary: Get an Account's Tags Relationship
      operationId: GetAnAccountTagsRelationship
      description: Get a list of Account Tags on an Account
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountTagsRelationshipResponse'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      tags:
      - Accounts
      summary: Add Account Tags
      operationId: AddAccountTagsOnAccount
      description: Add Account Tags onto an Account. Please note that after adding a tag to an account, the account member token should be regenerated to reflect the updated account status, allowing other services to react accordingly. See [Account Management Authentication Token](/docs/api/accounts/post-v-2-account-members-tokens).
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAccountTagsOnAccount'
            examples:
              Add Example:
                summary: Add an Account Tag
                value:
                  data:
                  - type: account_tag
                    id: 030693ce-39ad-4f4c-9941-d2d596478e94
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountTagsRelationshipResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Accounts
      summary: Remove Account Tags
      operationId: RemoveAccountTagsOnAccount
      description: Remove Account Tags from an Account. Please note that after removing a tag from an account, the account member token should be regenerated to reflect the updated status, allowing other services to react accordingly. See [Account Management Authentication Token](/docs/api/accounts/post-v-2-account-members-tokens).
      parameters:
      - name: accountID
        in: path
        description: The ID of the account you want to retrieve.
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveAccountTagsOnAccount'
            examples:
              Remove Example:
                summary: Remove an Account Tag
                value:
                  data:
                  - type: account_tag
                    id: 030693ce-39ad-4f4c-9941-d2d596478e94
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountTagsRelationshipResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    ReadOnlyParentId:
      type: object
      properties:
        parent_id:
          type:
          - string
          - 'null'
          format: uuid
          readOnly: true
          description: Specifies the ID of the parent account.
          example: 96b1f750-55d3-4768-a3f8-adffba694a2c
    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
    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'
    MetaTimestamps:
      type: object
      properties:
        timestamps:
          type: object
          properties:
            created_at:
              description: The date the resource is created.
              type: string
              example: '2021-02-23T09:40:33.882Z'
            updated_at:
              description: The date the resource is updated.
              type: string
              example: '2021-02-23T09:40:33.882Z'
    RemoveAccountTagsOnAccount:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountTagsRelationshipIdentifier'
    WritableParentId:
      type: object
      properties:
        parent_id:
          type:
          - string
          - 'null'
          format: uuid
          description: Specifies the ID of the parent account, this field cannot be changed after creation.
          example: 96b1f750-55d3-4768-a3f8-adffba694a2c
    AccountResponse:
      allOf:
      - $ref: '#/components/schemas/Account'
      - $ref: '#/components/schemas/ReadOnlyParentId'
      - type: object
        properties:
          id:
            $ref: '#/components/schemas/UUID'
            description: The unique identifier for an Account.
          meta:
            $ref: '#/components/schemas/MetaTimestamps'
            description: Additional information for this realm. For more information, see [The meta object](https://elasticpath.dev/docs/commerce-cloud/accounts/using-account-management-api/account-management-api-overview#the-meta-object) section.
          relationships:
            type: object
            properties:
              account_tags:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          $ref: '#/components/schemas/UUID'
                          description: The unique identifier for an Account Tag.
                        type:
                          type: string
                          const: account_tag
                description: Tags associated with the account.
              ancestors:
                type: array
                items:
                  type: object
                  properties:
                    data:
                      type: object
                      properties:
                        id:
                          $ref: '#/components/schemas/UUID'
                          description: The unique identifier for an Account.
                        type:
                          type: string
                          const: account
                  description: All parent accounts in the hierarchy in sorted order (root first).
              parent:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      type:
                        type: string
                        const: account
                      id:
                        $ref: '#/components/schemas/UUID'
                        description: The unique identifier for an Account.
    AddAccountTagsOnAccount:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountTagsRelationshipIdentifier'
    UUID:
      type: string
      description: The unique identifier.
      format: uuid
      x-go-type: uuid.UUID
      x-go-type-import:
        name: uuid
        path: github.com/google/uuid
      example: deb6b25f-8451-4211-9a22-95610333df23
    MetaList:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/MetaListPage'
        results:
          $ref: '#/components/schemas/MetaListResults'
    AccountTagsRelationshipIdentifier:
      type: object
      properties:
        id:
          description: The unique identifier for the related Account Tag.
          type: string
          example: 652e39d8-d613-493e-8c20-fef99ad6327a
        type:
          description: Specifies the type of the resource object.
          type: string
          const: account_tag
    MetaListResults:
      type: object
      properties:
        total:
          type: integer
          description: The total number of results after applying filters, if any, or all results.
          example: 1
    Account:
      type: object
      properties:
        type:
          type: string
          description: Specifies the type of object. Set this value to `account`.
          const: account
        name:
          type: string
          description: Specifies the name of the account.
          example: acc-name
        legal_name:
          type:
          - string
          - 'null'
          description: Specifies the legal name of the account.
          example: acc-legal-name
        registration_id:
          type:
          - string
          - 'null'
          description: Specifies the registration ID. If specified, this field is checked for uniqueness.
          example: reg-id
        external_ref:
          type:
          - string
          - 'null'
          description: The unique attribute associated with the account. For example, this could be an external reference from a separate company system. The maximum length is 2048 characters. Default is `null`.
          example: ext-ref
      required:
      - type
      - name
    AccountTagsRelationshipResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AccountTagsRelationshipIdentifier'
        links:
          type: object
          properties:
            self:
              description: A URL to the specific resource.
              type: string
              example: https://useast.api.elasticpath.com/v2/accounts/deb6b25f-8451-4211-9a22-95610333df23/relationships/account-tags
  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: account not found
    ConflictError:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            conflict-error:
              value:
                errors:
                - title: Conflict
                  status: '409'
                  detail: account membership with the given account id and account member id already exists
    UnprocessableEntity:
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unprocessable-entity:
              value:
                errors:
                - title: Unprocessable Entity
                  status: '422'
                  detail: store id mismatch
    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
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            unauthorized-error:
              value:
                errors:
                - title: Unauthorized
                  status: '401'
    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.'
  parameters:
    filter:
      name: filter
      in: query
      description: Specifies the filter attributes.
      required: false
      schema:
        type: string
        format: string
        example: ilike(name,"*swan*")
    page-limit:
      name: page[limit]
      in: query
      description: The number of records per page.
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        example: 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
        maximum: 10000
        example: 10
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer