Skip to main content
POST
/
segments
Create a segment
curl --request POST \
  --url https://api.sendkit.dev/segments \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "VIP Customers",
  "match_type": "all",
  "filters": {
    "groups": [
      {
        "match_type": "all",
        "conditions": [
          {
            "field": "<string>",
            "type": "reserved",
            "operator": "equals",
            "value": "<string>",
            "property_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          }
        ]
      }
    ]
  }
}
'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "VIP Customers",
  "match_type": "all",
  "filters": {
    "groups": [
      {
        "match_type": "all",
        "conditions": [
          {
            "field": "email",
            "type": "reserved",
            "operator": "contains",
            "value": "@example.com",
            "property_id": null
          }
        ]
      }
    ]
  },
  "created_at": "2026-03-03 10:00:00",
  "updated_at": "2026-03-03 10:00:00"
}

Authorizations

Authorization
string
header
required

API key from your SendKit dashboard. Pass it as a Bearer token in the Authorization header.

Body

application/json
name
string
required

The name of the segment.

Maximum string length: 255
Example:

"VIP Customers"

match_type
enum<string>
required

How to match the filter groups.

Available options:
all,
any
Example:

"all"

filters
object
required

The filter configuration.

Response

Segment created successfully

id
string<uuid>

Unique identifier.

Example:

"550e8400-e29b-41d4-a716-446655440000"

name
string

The name of the segment.

Example:

"VIP Customers"

match_type
enum<string>

How to match the filter groups. all requires all groups to match, any requires at least one.

Available options:
all,
any
Example:

"all"

filters
object

The filter configuration for the segment.

created_at
string<date-time>

When the segment was created.

Example:

"2026-03-03 10:00:00"

updated_at
string<date-time>

When the segment was last updated.

Example:

"2026-03-03 10:00:00"