---
title: "Issue Api Key"
method: POST
path: "/v1/cron/issue-api-key"
tags: ["cron", "cron"]
---

# Issue Api Key

`POST /v1/cron/issue-api-key`

## Request

- Base URL: `https://api.etymolt.com`
- URL: `https://api.etymolt.com/v1/cron/issue-api-key`
- Auth: none declared

Issue a new API key + insert row, print plaintext ONCE.

POST {"tier": "platform", "email": "tariq@etymolt.com", "notes": "operator", "scopes": null}

- tier: one of the tiers in services.auth.api_key.VALID_ISSUE_TIERS
        (typically: paid, pro, platform, agency, enterprise)
- email: optional owner_email for audit
- notes: optional free-form
- scopes: optional comma-separated (default = legacy ALL_SCOPES)

Returns: {plaintext, hashed, tier, owner_email, scopes}
The plaintext is only surfaced HERE and cannot be recovered later — the
server stores only the hash. Save it immediately.

## Headers

- `authorization` string, nullable

## Request body

- object, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names.md) · [All operations](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/llms.txt) · [OpenAPI document](https://skmtc.dev/etymolt/apis/etymolt-verify-ai-generated-brand-names/revisions/7228ffa1efa7?raw)
