Skip to main content
POST
Create product

Authorizations

Authorization
string
header
required

workspace API token (sk_akua_...) or OAuth2 JWT. Create tokens at https://akua.dev/developers/api-tokens

Headers

akua-context
string

Optional workspace/scope context for the request. Carries a single workspace wire id (ws_…) today. Only needed for broad tokens — a workspace-owned token implies its workspace.

Required string length: 1 - 53
Example:

"ws_j572abc123def456"

idempotency-key
string

Optional caller-supplied idempotency key. Any non-empty key up to 64 characters is accepted. Endpoint-specific documentation describes how the key is used.

Required string length: 1 - 64
Example:

"create-prod-2026-05-07"

Body

application/json
name
string
required
Required string length: 2 - 64
Example:

"PostgreSQL Managed"

package_id
string
required
Required string length: 1 - 54
package_version_pin
object
required
custom_image
string<uri>

Custom display image URL — overrides the package logo

custom_description
string

Custom display description — overrides the package description

Maximum string length: 500
marketplace
object

Marketplace listing config. Omit to keep the product unlisted.

Response

Product created

id
string
required
Required string length: 1 - 55
Example:

"prod_j572abc123def456"

html_url
string<uri>
required

Absolute dashboard URL for this resource. OUTPUT_ONLY.

Maximum string length: 2048
Example:

"https://akua.dev/products/prod_j572abc123def456"

name
string
required
Example:

"PostgreSQL Managed"

workspace_id
string
required
Required string length: 1 - 53
package
object
required

Reference to the Package backing this product. Fetch full details via GET /v1/packages/{id}.

marketplace
object | null
required

Marketplace listing configuration. When null the product is not listed.

created_at
integer
required

Unix timestamp (seconds)

Required range: x >= 0
updated_at
integer
required

Unix timestamp (seconds)

Required range: x >= 0
etag
string
required
state
enum<string>
required

Product lifecycle state.

Available options:
active,
archived
custom_image
string

Custom display image URL — overrides the package logo on customer-facing pages

custom_description
string

Custom display description — overrides the package description

archived_at
integer

When the product was archived, expressed as Unix seconds since epoch.

Required range: x >= 0
archive_reason
string

Reason supplied by the seller when archiving.