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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/elastic-path-application-keys-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Introduction Application Keys API
description: Application keys are used to directly manage access to Organizations and stores.
contact:
name: Elastic Path
url: https://www.elasticpath.com
email: support@elasticpath.com
version: 26.0212.7188016
x-version-timestamp: 2026-02-12 23:38:57+00:00
license:
name: MIT
url: https://raw.githubusercontent.com/elasticpath/elasticpath-dev/main/LICENSE
servers:
- url: https://useast.api.elasticpath.com
description: US East
- url: https://euwest.api.elasticpath.com
description: EU West
security:
- bearerAuth: []
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
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
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
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
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/ValidationError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
components:
schemas:
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
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'
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'
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
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
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'
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
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
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"
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"
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"
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"
parameters:
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
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
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
requestBodies:
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
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
securitySchemes:
bearerAuth:
type: http
scheme: bearer