Returns publishable and secret API keys for the current store. Secret keys are listed by token_prefix only — the plaintext token is delivered exactly once on create.
Required scope: read_api_keys (for API-key authentication).
GET
/
api
/
v3
/
admin
/
api_keys
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: keys } = await client.apiKeys.list()spree api get /api_keys{
"data": [
{
"id": "key_UkLWZg9DAJ",
"name": "Storefront key",
"key_type": "publishable",
"token_prefix": null,
"scopes": [],
"created_at": "2026-07-27T20:00:02.459Z",
"updated_at": "2026-07-27T20:00:02.459Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": "pk_BUr9aRDjsVXrXqA54fhUUKJr",
"created_by_email": null
},
{
"id": "key_gbHJdmfrXB",
"name": "Backend integration",
"key_type": "secret",
"token_prefix": "sk_X1KbsdrkJ",
"scopes": [
"write_all"
],
"created_at": "2026-07-27T20:00:02.460Z",
"updated_at": "2026-07-27T20:00:02.460Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": null,
"created_by_email": null
},
{
"id": "key_EfhxLZ9ck8",
"name": "perspiciatis",
"key_type": "secret",
"token_prefix": "sk_KwNinNmrS",
"scopes": [
"write_all"
],
"created_at": "2026-07-27T20:00:02.461Z",
"updated_at": "2026-07-27T20:00:02.461Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": null,
"created_by_email": null
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 3,
"pages": 1,
"from": 1,
"to": 3,
"in": 3,
"previous": null,
"next": null
}
}Was this page helpful?
⌘I
Spree Admin SDK
import { createAdminClient } from '@spree/admin-sdk'
const client = createAdminClient({
baseUrl: 'https://your-store.com',
secretKey: 'sk_xxx',
})
const { data: keys } = await client.apiKeys.list()spree api get /api_keys{
"data": [
{
"id": "key_UkLWZg9DAJ",
"name": "Storefront key",
"key_type": "publishable",
"token_prefix": null,
"scopes": [],
"created_at": "2026-07-27T20:00:02.459Z",
"updated_at": "2026-07-27T20:00:02.459Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": "pk_BUr9aRDjsVXrXqA54fhUUKJr",
"created_by_email": null
},
{
"id": "key_gbHJdmfrXB",
"name": "Backend integration",
"key_type": "secret",
"token_prefix": "sk_X1KbsdrkJ",
"scopes": [
"write_all"
],
"created_at": "2026-07-27T20:00:02.460Z",
"updated_at": "2026-07-27T20:00:02.460Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": null,
"created_by_email": null
},
{
"id": "key_EfhxLZ9ck8",
"name": "perspiciatis",
"key_type": "secret",
"token_prefix": "sk_KwNinNmrS",
"scopes": [
"write_all"
],
"created_at": "2026-07-27T20:00:02.461Z",
"updated_at": "2026-07-27T20:00:02.461Z",
"revoked_at": null,
"last_used_at": null,
"channel_id": null,
"plaintext_token": null,
"created_by_email": null
}
],
"meta": {
"page": 1,
"limit": 25,
"count": 3,
"pages": 1,
"from": 1,
"to": 3,
"in": 3,
"previous": null,
"next": null
}
}
