Create Consumer Key

Beta

Mint a consumer key (ck_...) for the API’s own callers. The plaintext secret is present in this response only; every later read shows the masked key_hint. Dark launch: requires the hosted_apis_access entitlement (402 hosted_apis_not_in_plan otherwise).

Authentication

AuthorizationBearer

Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.

Path parameters

api_idstringRequired

Hosted API id (prefixed external id, api_...).

Headers

Speechify-VersionstringOptional
Idempotency-KeystringOptional<=255 characters
A client-generated key (an opaque string, max 255 chars) that makes a side-effect POST safe to retry: the server runs the operation exactly once and replays the first response (its status and body) for 24 hours. Reusing a key with a different request body, or while the first request is still in flight, returns `409 idempotency_conflict`. A replayed response carries the `Idempotent-Replayed: true` header.

Request

This endpoint expects an object.
namestringRequired
rate_per_minuteintegerOptional0-100000

Requests per minute; 60 when omitted, 0 for unlimited.

Response headers

Speechify-Request-IdstringOptional
Unique identifier for this request, present on every response (2xx and non-2xx alike). If the caller sends a `Speechify-Request-Id` request header the server echoes it back (sanitized and length-capped) so one logical request can be traced end-to-end; otherwise the server generates a fresh value. Log it on every response and quote it in support requests - it is the stable handle that ties your observation to Speechify's server-side logs, and it matches the `request_id` field in the error envelope. The legacy alias `X-Request-ID` carries the same value and is still accepted on requests, until 2027-07-24. Prefer the un-prefixed name (RFC 6648).

Response

The created key, with its one-time secret.

idstringformat: "^ckey_[0-9a-hjkmnp-tv-z]{26}$"
api_idstringformat: "^api_[0-9a-hjkmnp-tv-z]{26}$"
namestring
key_hintstring
The masked secret shown on every read.
rate_per_minuteinteger>=0

Requests per minute this key may make; 0 is unlimited.

created_atdatetime
secretstringOptional
The plaintext key, present on the create response only.
revoked_atdatetimeOptional
last_used_atdatetimeOptional

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
404
Not Found Error
409
Conflict Error