---
title: "Create an API key (accepts the Terms)"
method: POST
path: "/api/keys"
---

# Create an API key (accepts the Terms)

`POST /api/keys`

## Request

- Base URL: `https://api.askingahuman.com`
- URL: `https://api.askingahuman.com/api/keys`
- Auth: none required

The request must accept the Terms of Service and Privacy Policy; the key records when (termsAcceptedAt, termsVersion). Any bot or business may be a Requester; businessUse is optional and only recorded (businessUseAt). The raw key is shown once. Stripe emails receipts for card charges to the card's billing email, or else to the optional email.

## Request body

- object
  - `acceptTerms` true, required: You accept the Terms of Service (https://askingahuman.com/terms) and Privacy Policy, and are 18 or older
  - `businessUse` boolean: Optional: you use askingahuman for business
  - `label` string
  - `email` string, email: Optional: where receipts are emailed

## Response `201`

Created

- object
  - `keyId` string
  - `key` string: Shown once
  - `message` string

## Other responses

- `400`: acceptTerms must be true, or the email is invalid
- `429`: Too many keys from this address; try later

---

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