Create api keys
const url = 'https://api.testzilla.ai/v1/api-keys';const options = { method: 'POST', headers: {'x-api-key': '<x-api-key>', 'Content-Type': 'application/json'}, body: '{"label":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.testzilla.ai/v1/api-keys \ --header 'Content-Type: application/json' \ --header 'x-api-key: <x-api-key>' \ --data '{ "label": "example" }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
A non-empty human label for the key (max 100 chars), e.g. “CI pipeline”.
Example generated
{ "label": "example"}Responses
Section titled “ Responses ”Key created. The raw apiKey is returned here and nowhere else, ever.
One-time response carrying the raw secret API key. Returned ONLY on create and rotate, and never again — the raw key is not stored and cannot be retrieved later.
object
Key identifier (Firestore doc id).
The key label.
Non-secret display prefix, e.g. “tz_a1b2c3d4”.
The raw secret API key. Shown EXACTLY ONCE. Store it immediately; it cannot be recovered afterwards.
Human-readable reminder that the key will not be shown again.
Example
{ "success": true}Missing or invalid label.
object
Human-readable error message.
Example generated
{ "error": "example"}Unauthorized (missing or invalid API key)
Not found
Per-user active-key limit reached (max 25). Revoke one before creating another.
object
Human-readable error message.
Example generated
{ "error": "example"}