---
title: "Create an API Key"
method: POST
path: "/keys"
tags: ["keys"]
---

# Create an API Key

`POST /keys`

Create an API Key with fine-grain access control. You can restrict access on both a per-collection and per-action level. The generated key is returned only during creation. You want to store this key carefully in a secure place.

## Request body

- ApiKeySchema
  - `value` string
  - `description` string, required
  - `actions` string[], required
  - `collections` string[], required
  - `expires_at` integer

## Response `201`

Created API key

- ApiKey
  - `value` string
  - `description` string, required
  - `actions` string[], required
  - `collections` string[], required
  - `expires_at` integer
  - `id` integer
  - `value_prefix` string

## Other responses

- `400` — Bad request, see error message for details
- `409` — API key generation conflict

---

[API](https://skmtc.net/typesense/apis/typesense-api.md) · [All operations](https://skmtc.net/typesense/apis/typesense-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/typesense/typesense-api/versions/1d9b3b61638e/schema)
