---
title: "Bulk create domain blacklist rules"
method: POST
path: "/v3/contact-blacklist-rules/domains/bulk"
tags: ["Contact Blacklist Rules"]
---

# Bulk create domain blacklist rules

`POST /v3/contact-blacklist-rules/domains/bulk`

<small>_Requires the `contacts:write` scope (or a broader one that includes it)._</small>

Creates multiple domain blacklist rules. Non-atomic — some may succeed while others fail.
Each item in the response array contains the created ID or error details.

## Request body

- object[]
  - `pattern` string, required — Domain pattern to blacklist. Must be a valid domain format (e.g., `example.com`, `spam-domain.net`)

## Response `200`

Array of creation results, one per input item.

Per-item error codes:

| error | Meaning |
|-------|---------|
| 2 | `Duplicate` — a rule with this pattern already exists |
| 4 | `InvalidPattern` — pattern is not a valid domain |
| 5 | `NotAdded` — rule could not be added (other reason) |

- object[]
  - `id` integer, nullable — ID of the created rule, null if creation failed
  - `error` integer, nullable — Error code if creation failed
  - `errorDetails` string, nullable — Human-readable error description if creation failed

## Other responses

- `400` — Request body validation failure
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — User lacks required feature scope to manage blacklist rules
- `429` — Too Many Requests

---

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