Skip to content

Issue a new API key (owner only)

POST
/dashboard/v1/merchants/{merchantId}/{mode}/api-keys
curl --request POST \
--url http://localhost:4000/dashboard/v1/merchants/example/test/api-keys \
--header 'idempotency-key: example' \
--cookie better-auth.session_token=<better-auth.session_token>
merchantId
required
string
mode
required
string
Allowed values: test live
idempotency-key
required

Required retry-safe key; reuse it only for the same operation and request body

string
>= 1 characters <= 255 characters

Required retry-safe key; reuse it only for the same operation and request body

New key; secret shown once

Media typeapplication/json
object
object
required
string
Allowed values: api_key
id
required
string
mode
required
string
Allowed values: test live
display_prefix
required
string
last_used_at
required
string | null
revoked_at
required
string | null
scheduled_revoke_at
required
string | null
created_at
required
string
secret_key
required

Shown only in this issuance response; never stored or retrievable

string
Example
{
"object": "api_key",
"mode": "test"
}

Invalid request

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Sign-in required

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Forbidden

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Not found

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}

Idempotency conflict or invalid state

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": "example"
}
}