Elastic Path Application Keys API
You can use application keys to generate `client_credentials` and `implicit` tokens.
You can use application keys to generate `client_credentials` and `implicit` tokens.
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