---
title: "Create a block"
method: POST
path: "/v2/blocks"
tags: ["Blocks"]
---

# Create a block

`POST /v2/blocks`

Creates a new named content block used as a reusable fragment in campaign experiences. Returns the created block with its server-assigned id.

## Request body

- BlockCreateRequest — Body of a `POST /v2/blocks` request.
  - `filter_type` 'BLACK' | 'WHITE', required
  - `list_type` 'CIDR' | 'EMAIL_DOMAIN' | 'NORMALIZED_EMAIL' | 'USER_AGENT', required
  - `value` string, required

## Response `200`

Successful response

- BlockResponse
  - `block_id` string, required
  - `client_id` string, nullable, required
  - `created_date` string, required — [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.
  - `filter_type` 'BLACK' | 'WHITE', required
  - `list_type` 'CIDR' | 'EMAIL_DOMAIN' | 'NORMALIZED_EMAIL' | 'USER_AGENT', required
  - `source` string, required
  - `user_id` string, nullable, required
  - `value` string, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `415` — Unsupported Media Type
- `429` — Too Many Requests

---

[API](https://skmtc.net/extole/apis/integration-api-server-to-extole.md) · [All operations](https://skmtc.net/extole/apis/integration-api-server-to-extole/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/extole/integration-api-server-to-extole/revisions/c16e62e66755/schema)
