SendlySendly
API ReferenceSegments

Create a segment

POST
/api/v1/segments

Create a DYNAMIC segment (a saved condition, re-evaluated against contacts on every read) or a STATIC one (an explicitly managed membership list). type is fixed at creation — it decides how membership is computed, so it cannot be changed later.

A DYNAMIC segment requires a condition, which is validated and evaluated during the request: the response's member_count tells you immediately how many contacts the filter actually matches.

Requires the segments:write scope — Create, edit, and delete your segments.

Authorization

AuthorizationBearer <token>

API key authentication. Use a sk_* (FULL) or pk_* (SENDING_ONLY) key as the bearer token. Public keys (pk_*) are restricted to the email-send endpoints and the self-serve list subscribe/unsubscribe pair; every other endpoint — event tracking included — answers 403 for them. In scope terms (used by /api/v1/* operations): FULL keys hold every scope; SENDING_ONLY keys hold only emails:send.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Body for POST /api/v1/segments. condition is required when type is DYNAMIC.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/api/v1/segments" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "description": "string",
  "type": "DYNAMIC",
  "condition": {
    "logic": "AND",
    "groups": [
      {
        "filters": [
          {
            "field": "string",
            "operator": "equals",
            "value": null,
            "unit": "days"
          }
        ],
        "conditions": {
          "logic": "AND",
          "groups": []
        }
      }
    ]
  },
  "track_membership": true,
  "member_count": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}
{
  "type": "http://example.com",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "code": "string",
  "request_id": "string",
  "errors": [
    {
      "pointer": "string",
      "code": "string",
      "message": "string"
    }
  ]
}