---
title: "Create a filter rule"
method: POST
path: "/filters"
tags: ["Filters"]
---

# Create a filter rule

`POST /filters`

Creates a new whitelist or blocklist filter. Per-domain filters
require a Pro plan. Patterns are stored as lowercase.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `type` 'whitelist' | 'blocklist', required
  - `pattern` string, required — Email address or pattern to filter
  - `domain_id` string, uuid, nullable — Restrict filter to a specific domain (Pro plan required)

## Response `201`

Filter created

- object
  - `success` true, required
  - `data` object, required
    - `id` string, uuid, required
    - `org_id` string, uuid, required
    - `domain_id` string, uuid, nullable — If set, filter applies only to this domain
    - `type` 'whitelist' | 'blocklist', required
    - `pattern` string, required — Email address or pattern to match (stored lowercase)
    - `enabled` boolean, required
    - `created_at` string, date-time, required

## Other responses

- `400` — Invalid request parameters
- `401` — Invalid or missing API key
- `404` — Resource not found

---

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