---
title: "Create a topic"
method: POST
path: "/topics"
tags: ["Topics"]
---

# Create a topic

`POST /topics`

## Request

- Base URL: `https://api.mepmail.dev`
- URL: `https://api.mepmail.dev/topics`
- Auth: HTTP bearer

Creates a subscription topic with its default opt-in.

## Request body

- CreateTopicRequest
  - `name` string, required
  - `description` string
  - `default_subscription` 'opt_in' | 'opt_out', required
  - `visibility` 'private' | 'public'

## Response `200`

Topic created

- TopicResponse
  - `id` string, uuid, required
  - `name` string, required
  - `description` string
  - `default_subscription` 'opt_in' | 'opt_out', required
  - `visibility` 'private' | 'public', required
  - `created_at` string, required

## Other responses

- `401`: Missing, malformed or invalid API key
- `422`: Validation error
- `429`: Rate limit exceeded: 600 requests per minute per API key and 3,000 per team; wait for Retry-After

---

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