---
title: "Mint a team key"
method: POST
path: "/v1/keys/team"
tags: ["Account"]
---

# Mint a team key

`POST /v1/keys/team`

## Request

- Base URL: `https://api.puntersedge.online`
- URL: `https://api.puntersedge.online/v1/keys/team`
- Auth: API key in header `X-API-Key`

Cost: 0 credits. Mint another key on this account. It shares this account's monthly
credit pool and plan, has its own rate-limit bucket, its own IP whitelist and its own line
in the usage breakdown, and can be revoked on its own. Business accounts may hold 3 keys
in total, Platform 5, Scale 10 — the primary key counts as one.

Pass `monthly_cap` to limit what this one key may spend per month inside the pool — the
key refuses with 402 at its cap and the pool is not touched, so one client, one worker or
one trial cannot spend the account's month. Change or remove it later with
`PATCH /v1/keys/team/{key_id}`. Caps reset with the pool on the 1st.

The key is returned once. It is stored hashed, like every key here, so if it is lost the
answer is revoke and mint again, not recovery.

## Headers

- `X-API-Key` string
- `X-RapidAPI-Proxy-Secret` string

## Request body

- TeamKeyIn
  - `label` string, required: What this key is for — 'results worker', 'Jo's laptop'. Shown in the pool view and in your usage breakdown.
  - `monthly_cap` integer, nullable: Optional. The most credits THIS key may spend per month, hard, inside the account's shared pool — between 1 and the plan's own monthly allowance. Omit it (or send null) and the key may spend the whole pool. Caps reset with the pool on the 1st.

## Response `201`

Successful Response

- TeamKeyMintOut
  - `key_id` string, required
  - `api_key` string, required: The team key. Shown ONCE; it is stored hashed and cannot be recovered — only revoked and re-minted.
  - `label` string, required
  - `plan` string, required
  - `allowance` integer, required: Keys this account may hold, primary included.
  - `keys_in_use` integer, required
  - `pool_credits_limit` integer, required
  - `pool_credits_used` integer, required
  - `monthly_cap` integer, nullable
  - `max_monthly_cap` integer: The largest cap this plan accepts — its own monthly allowance.

## Other responses

- `401`: Missing or invalid API key. Send `X-API-Key`. See https://puntersedge.online/developers/errors
- `402`: Monthly credit allowance exhausted for this plan. Upgrade at https://puntersedge.online/api/pricing
- `403`: Team keys are available on Business, Platform, Scale and Enterprise plans only, and only the primary key may mint them.
- `409`: The account already holds its allowance of keys.
- `422`: monthly_cap is outside 1..the plan's monthly credit allowance.
- `429`: Rate limit exceeded for this plan. Honour the `Retry-After` header (seconds) before retrying. See https://puntersedge.online/developers/rate-limits
- `500`: Unexpected server error. Safe to retry with backoff.

---

[API](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api.md) · [All operations](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/llms.txt) · [OpenAPI document](https://skmtc.dev/puntersedge/apis/puntersedge-odds-api/revisions/f35b6aab1946?raw)
