{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/paubox/main/json-schema/paubox-bulk-subscription-change-request-schema.json",
  "title": "BulkSubscriptionChangeRequest",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/paubox-subscriptions-api-openapi.yml#/components/schemas/BulkSubscriptionChangeRequest",
  "type": "object",
  "properties": {
    "subscriber_ids": {
      "type": "array",
      "description": "UUIDs of specific subscribers to update. When present the request is handled synchronously and every other field is ignored.",
      "items": {
        "type": "string"
      }
    },
    "from_subscription_list_id": {
      "type": "string",
      "description": "UUID of the list whose members are being updated. Required when `subscriber_ids` is omitted. On the `bulk_global_*` endpoints this is a subscription list UUID; on the `dynamic_bulk_*` endpoints it is a dynamic list UUID."
    },
    "search": {
      "type": "string",
      "description": "Search term used to narrow the list's members. Defaults to `*` (all members) on the `bulk_global_*` endpoints."
    },
    "filters": {
      "type": "string",
      "description": "URL-encoded JSON describing additional subscriber filters, as generated by the subscriber search in the Marketing dashboard. The decoded value is an array of filter groups, each group an array of `{\"field\": ..., \"op\": ..., \"terms\": [...]}` objects. Ignored by the `dynamic_bulk_*` endpoints, which use the filters saved on the dynamic list."
    },
    "except_ids": {
      "type": "array",
      "description": "UUIDs of subscribers to exclude from the operation. Use this to express \"select all except these\".",
      "items": {
        "type": "string"
      }
    }
  }
}