Elastic Path Application Keys API

You can use application keys to generate `client_credentials` and `implicit` tokens.

OpenAPI Specification

elastic-path-application-keys-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 Application Keys 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: Application Keys
  description: You can use application keys to generate `client_credentials` and `implicit` tokens.
paths:
  /v2/application-keys:
    post:
      tags:
      - Application Keys
      summary: Create an Application Key
      operationId: CreateAnApplicationKey
      description: Create an Application Key
      requestBody:
        $ref: '#/components/requestBodies/CreateApplicationKey'
      responses:
        '201':
          $ref: '#/components/responses/CreateApplicationKey'
        '400':
          $ref: '#/components/responses/ValidationError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      tags:
      - Application Keys
      summary: List Application Keys
      operationId: ListApplicationKeys
      description: 'Retrieves a list of Application Keys

        '
      parameters:
      - $ref: '#/components/parameters/PageOffset'
      - $ref: '#/components/parameters/PageLimit'
      responses:
        '200':
          $ref: '#/components/responses/ListOfApplicationKeys'
        '400':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v2/application-keys/{application-key-id}:
    parameters:
    - $ref: '#/components/parameters/ApplicationKeyID'
    get:
      tags:
      - Application Keys
      summary: Get an Application Key
      operationId: GetAnApplicationKey
      description: Get an Application Key
      responses:
        '200':
          $ref: '#/components/responses/ApplicationKey'
        '400':
          $ref: '#/components/responses/ValidationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      tags:
      - Application Keys
      summary: Update an Application Key
      operationId: UpdateAnApplicationKey
      description: Update an Application Key
      requestBody:
        $ref: '#/components/requestBodies/UpdateApplicationKey'
      responses:
        '200':
          $ref: '#/components/responses/ApplicationKey'
        '400':
          $ref: '#/components/responses/ValidationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Application Keys
      summary: Delete an Application Key
      operationId: DeleteAnApplicationKey
      description: Delete an Application Key
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/ValidationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    PageOffset:
      name: page[offset]
      description: The current offset by number of records, not pages. Offset is zero-based. The maximum records you can offset is 10,000. If no page size is set, the [page length](/docs/api/settings/settings-introduction#page-length) store setting is used.
      in: query
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        maximum: 10000
        example: 0
    PageLimit:
      name: page[limit]
      description: The maximum number of records per page for this response. You can set this value up to 100. If no page size is set, the [page length](/docs/api/settings/settings-introduction#page-length) store setting is used.
      in: query
      required: false
      schema:
        type: integer
        format: int64
        minimum: 0
        example: 100
    ApplicationKeyID:
      name: application-key-id
      description: The unique identifier of the Application Key.
      in: path
      required: true
      schema:
        type: string
        format: uuid
      example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
  requestBodies:
    UpdateApplicationKey:
      content:
        application/json:
          schema:
            type: object
            required:
            - data
            properties:
              data:
                type: object
                required:
                - type
                properties:
                  type:
                    type: string
                    description: Specifies the type of the resource object, use `application_key` for application keys.
                    const: application_key
                  name:
                    type: string
                    description: Specifies the name of the application key.
                    minLength: 1
                    maxLength: 255
                  reserved_rate_limit:
                    type: integer
                    description: Indicates the reserved rate limit for an application key. For more information, see [Application Keys Overview](/docs/api/application-keys/application-keys-introduction).
                    minimum: 0
          examples:
            Update Example:
              summary: Update a Application Key
              value:
                data:
                  type: application_key
                  name: Batch-Processing
                  reserved_rate_limit: 10
    CreateApplicationKey:
      content:
        application/json:
          schema:
            type: object
            required:
            - data
            properties:
              data:
                type: object
                required:
                - type
                - name
                properties:
                  type:
                    type: string
                    description: Specifies the type of the resource object, use `application_key` for application keys.
                    const: application_key
                  name:
                    type: string
                    description: Specifies the name of the application key.
                    minLength: 1
                    maxLength: 255
                  reserved_rate_limit:
                    type: integer
                    description: Indicates the reserved rate limit for an application key. For more information, see [Application Keys Overview](/docs/api/application-keys/application-keys-introduction).
                    minimum: 0
          examples:
            Create Example:
              summary: Create an Application Key
              value:
                data:
                  type: application_key
                  name: Storefront-Key
                  reserved_rate_limit: 0
  responses:
    ListOfApplicationKeys:
      description: List of Application Keys
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationKey'
              meta:
                $ref: '#/components/schemas/ListMeta'
              links:
                $ref: '#/components/schemas/PaginationLinks'
    NotFoundError:
      description: Not found. The requested entity does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          examples:
            Not Found:
              summary: Requested entity not found
              value: "{\n  \"errors\": [\n    {\n      \"title\": \"Not Found\",\n      \"status\": \"404\",\n      \"detail\": \"Not found\"\n    }\n  ]\n}\n"
    ConflictError:
      description: Unable to perform the operation at this time.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          examples:
            Exceed Rate Limit:
              summary: Requested limit exceeds maximum
              value: "{\n  \"errors\": [\n    {\n      \"title\": \"Conflict\",\n      \"status\": \"409\",\n      \"detail\": \"Requested reserved rate limit will exceed the maximum.\"\n    }\n  ]\n}\n"
    ValidationError:
      description: Bad request. The request failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          examples:
            Missing Name:
              summary: Required field missing
              value: "{\n  \"errors\": [\n    {\n      \"title\": \"Bad Request\",\n      \"status\": \"400\",\n      \"detail\": \"The field 'name' is required.\"\n    }\n  ]\n}\n"
    InternalServerError:
      description: Internal server error. There was a system failure in the platform.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          examples:
            Internal Server Error:
              summary: Internal server error
              value: "{\n  \"errors\": [\n    {\n      \"title\": \"Internal Server Error\",\n      \"status\": \"500\",\n      \"detail\": \"there was a problem processing your request\"\n    }\n  ]\n}\n"
    CreateApplicationKey:
      description: An Application Key
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                allOf:
                - $ref: '#/components/schemas/ApplicationKey'
                - type: object
                  properties:
                    client_secret:
                      type: string
                      description: Represents the unique `client_secret`.
                      example: jN8qLHneOn8C1rv0r3J3XZK1cRiZG3rajcLi9X1cZZ
              links:
                type: object
                properties:
                  self:
                    $ref: '#/components/schemas/LinkURI'
                    description: Specifies the URI of the Application Key.
                    example: /v2/application-keys/3fa85f64-5717-4562-b3fc-2c963f66afa6
    ApplicationKey:
      description: An Application Key
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/ApplicationKey'
              links:
                type: object
                properties:
                  self:
                    $ref: '#/components/schemas/LinkURI'
                    description: Specifies the URI of the Application Key.
                    example: /v2/application-keys/3fa85f64-5717-4562-b3fc-2c963f66afa6
  schemas:
    Timestamps:
      type: object
      properties:
        created_at:
          type: string
          description: Specifies the date the entity is created.
          example: '2017-01-10T11:41:19.244Z'
        updated_at:
          type: string
          description: Specifies the date the entity is last updated.
          example: '2017-01-10T11:41:19.244Z'
        last_used_at:
          type:
          - string
          - 'null'
          description: Specifies the approximate last used date of the Application Key. A `null` value indicates that the key has not been used.
          example: '2017-01-10T11:41:19.244Z'
    Meta:
      type: object
      properties:
        timestamps:
          $ref: '#/components/schemas/Timestamps'
    Errors:
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            type: object
            required:
            - status
            - title
            properties:
              status:
                type: string
                description: The HTTP response code of the error.
                format: string
                examples:
                - '400'
              title:
                type: string
                description: A brief summary of the error.
                examples:
                - Bad Request
              detail:
                type: string
                description: Optional additional detail about the error.
                examples:
                - The field 'name' is required
    LinkURI:
      type:
      - string
      - 'null'
      format: uri
    ListMeta:
      type: object
      properties:
        results:
          type: object
          properties:
            total:
              type: integer
              description: Total number of results for the entire collection.
        page:
          type: object
          properties:
            limit:
              type: integer
              description: The maximum number of records for all pages.
              example: 100
            offset:
              type: integer
              description: The current offset by number of pages.
              example: 0
            current:
              type: integer
              description: The current number of pages.
              example: 1
            total:
              type: integer
              description: The total number of pages.
              example: 1
        total_reserved_rate_limit:
          type: integer
          description: Sum of rate limit reserved for all application keys.
          example: 100
    ApplicationKey:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the Application Key.
          format: uuid
        type:
          type: string
          description: Specifies the type of the resource object, always `application_key` for Application Keys.
          const: application_key
        name:
          type: string
          description: Specifies the name of this Application Key.
          minLength: 1
          maxLength: 255
        reserved_rate_limit:
          type: integer
          description: Indicates the reserved rate limit for an application key. For more information, see [Application Keys Overview](/docs/api/application-keys/application-keys-introduction).
          minimum: 0
        client_id:
          type: string
          description: Represents the unique `client_id`.
          example: Z2dDp1f1Tg30p2C6ZVit7W1AKUtVhMVSTAPOIK4adA
        meta:
          $ref: '#/components/schemas/Meta'
    PaginationLinks:
      type: object
      properties:
        current:
          $ref: '#/components/schemas/LinkURI'
          description: Always the current page.
          example: /v2/application-keys?page[offset]=0&page[limit]=100
        first:
          $ref: '#/components/schemas/LinkURI'
          description: Always the first page.
          example: /v2/application-keys?page[offset]=0&page[limit]=100
        last:
          $ref: '#/components/schemas/LinkURI'
          description: Always `null` if there is only one page.
          example: /v2/application-keys?page[offset]=0&page[limit]=100
        next:
          $ref: '#/components/schemas/LinkURI'
          description: Always `null` if there is only one page.
          example: null
        prev:
          $ref: '#/components/schemas/LinkURI'
          description: Always `null` if on the first page.
          example: null
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer