Publishable API Keys with Sales Channels
In this document, you’ll learn what publishable API keys are and how to use them with sales channels.
Publishable API Keys with Sales Channels#
A publishable API key, provided by the API Key Module, is a client key scoped to one or more sales channels.
When sending a request to a Store API route, you must pass a publishable API key in the header of the request:
The Medusa application infers the associated sales channels and ensures that only data relevant to the sales channel are used.
How to Create a Publishable API Key?#
To create a publishable API key, either use the Medusa Admin or the Admin API Routes.
Access Sales Channels in Custom Store API Routes#
If you create an API route under the /store
prefix, you can access the sales channels associated with the request's publishable API key using the publishable_key_context
property of the request object.
For example:
1import { MedusaStoreRequest, MedusaResponse } from "@medusajs/framework/http"2import { getVariantAvailability } from "@medusajs/framework/utils"3 4export async function GET(5 req: MedusaStoreRequest,6 res: MedusaResponse7) {8 const query = req.scope.resolve("query")9 const sales_channel_ids = req.publishable_key_context.sales_channel_ids10 11 res.json({12 sales_channel_id: sales_channel_ids[0],13 })14}
In this example, you retrieve the scope's sales channel IDs using req.publishable_key_context.sales_channel_ids
, whose value is an array of IDs.
You can then use these IDs based on your business logic. For example, you can retrieve the sales channels' details using Query.
MedusaStoreRequest
instead of MedusaRequest
to ensure the availability of the publishable_key_context
property.