{
  "openapi": "3.1.0",
  "info": {
    "title": "Experiture AI CDP Public Platform API",
    "description": "Public API for the Experiture platform. Covers CDP data ingestion, audience management, and Campaigns read APIs for tenant-scoped integrations.",
    "version": "1.0.0-dev-preview"
  },
  "paths": {
    "/profiles/upsert": {
      "post": {
        "tags": [
          "profiles"
        ],
        "summary": "Upsert Profile",
        "operationId": "profiles_upsert",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecordUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordAcceptedResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "x-speakeasy-group": "profiles",
        "description": "Upsert a unified profile record in the contacts object. Performs identity resolution using the specified match key. Requires `cdp:profiles:write` or `cdp:contacts:write` scope.",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/audiences/{audience_id}/preview": {
      "post": {
        "tags": [
          "audiences"
        ],
        "summary": "Preview Audience",
        "operationId": "audiences_preview",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "audience_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "Audience Id"
            },
            "description": "The unique identifier of the audience definition. Obtain from the Experiture console under Audiences."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicAudiencePreviewRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicAudiencePreviewResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "audiences",
        "description": "Run the audience rule against live profile data and return an exact match count plus a sample of records. Use `limit: 0` for count-only (fastest). Use `limit: 1–1000` to inspect sample records. The count is always computed over the full dataset regardless of `limit`."
      }
    },
    "/import-jobs": {
      "post": {
        "tags": [
          "imports"
        ],
        "summary": "Create Public Import Job",
        "operationId": "imports_create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicInitImportJobRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicImportJobInitResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "x-speakeasy-group": "imports",
        "description": "Initialize a new import job. Declare the target object and file metadata (`objectName`, `fileName`, `fileSize`). The response includes a pre-signed `uploadUrl` — PUT the file there before calling `imports_set_mapping`. Optionally create a list or audience from the imported records.",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/import-jobs/{job_id}/mapping": {
      "post": {
        "tags": [
          "imports"
        ],
        "summary": "Set Public Import Mapping",
        "operationId": "imports_set_mapping",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            },
            "description": "The import job ID returned by `imports_create`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicImportMappingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicImportJobMappingResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "imports",
        "description": "Set the field mapping for an import job in `pending` state. Provide `sourceFields` (column name → data type) and `fieldMap` (source column → destination field). The job transitions to `ready` on success. Returns `422` if any destination field does not exist on the target object."
      }
    },
    "/import-jobs/{job_id}/start": {
      "post": {
        "tags": [
          "imports"
        ],
        "summary": "Start Public Import Job",
        "operationId": "imports_start",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            },
            "description": "The import job ID returned by `imports_create`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicStartImportJobRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicImportJobStartResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "imports",
        "description": "Start an import job that is in `ready` state. The job is queued for processing and transitions to `running`. Once started the job is terminal — mapping and source cannot be changed."
      }
    },
    "/import-jobs/{job_id}": {
      "get": {
        "tags": [
          "imports"
        ],
        "summary": "Get Public Import Job",
        "operationId": "imports_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            },
            "description": "The import job ID returned by `imports_create`."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicImportJobStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "imports",
        "description": "Get the current status and progress metrics for an import job. Poll until `state` is `completed` or `failed`. Recommended polling: exponential backoff starting at 5 s, cap at 60 s."
      }
    },
    "/import-jobs/{job_id}/errors": {
      "get": {
        "tags": [
          "imports"
        ],
        "summary": "Get Public Import Job Errors",
        "operationId": "imports_get_errors",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            },
            "description": "The import job ID returned by `imports_create`."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicImportJobErrorsResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "imports",
        "description": "Get the error file URL for a completed import job that had row-level failures. Returns a pre-signed URL pointing to a JSONL file — one rejected row per line. The URL expires; re-fetch if needed after expiry. Returns `{ hasErrors: false }` if all rows succeeded."
      }
    },
    "/metadata/objects": {
      "get": {
        "tags": [
          "metadata"
        ],
        "summary": "List Public Metadata Objects",
        "operationId": "metadata_list_objects",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicMetadataObjectListResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "x-speakeasy-group": "metadata",
        "description": "List all objects available in the caller's workspace. Returns object names, display names, and field counts. Use this to discover what objects exist before writing records or running imports.",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/metadata/objects/{object_name}": {
      "get": {
        "tags": [
          "metadata"
        ],
        "summary": "Get Public Metadata Object",
        "operationId": "metadata_get_object",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The object name to inspect (e.g. `contacts`). Must match a name returned by `metadata_list_objects`."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicMetadataObjectDetailResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "metadata",
        "description": "Get the full field schema for a specific object. Returns field names, data types, and identity configuration. Use this to build field mappings for import jobs or to validate write payloads."
      }
    },
    "/records/{object_name}/append": {
      "post": {
        "tags": [
          "records"
        ],
        "summary": "Append Record",
        "operationId": "records_append",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The target object name (e.g. `contacts`, `events`). Must match an object visible in `metadata_list_objects`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordAcceptedResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "records",
        "description": "Append a single record to the named object. The record is written as a new row; no deduplication or identity resolution is performed. Use for event streams and append-only tables."
      }
    },
    "/records/{object_name}/upsert": {
      "post": {
        "tags": [
          "records"
        ],
        "summary": "Upsert Record",
        "operationId": "records_upsert",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The target object name (e.g. `contacts`, `events`). Must match an object visible in `metadata_list_objects`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecordUpsertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordAcceptedResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "records",
        "description": "Upsert a single record in the named object using the specified match key. If a record with the same match-key value already exists it is updated; otherwise a new row is inserted. Requires `cdp:records:write` scope."
      }
    },
    "/records/{object_name}/append-batch": {
      "post": {
        "tags": [
          "records"
        ],
        "summary": "Append Record Batch",
        "operationId": "records_append_batch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The target object name (e.g. `contacts`, `events`). Must match an object visible in `metadata_list_objects`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecordBatchRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordBatchIngestionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "records",
        "description": "Submit a batch of records for append ingestion. The batch is queued asynchronously; poll the returned `jobId` with `records_get_job` for completion status. Maximum 10,000 records per request."
      }
    },
    "/records/{object_name}/upsert-batch": {
      "post": {
        "tags": [
          "records"
        ],
        "summary": "Upsert Record Batch",
        "operationId": "records_upsert_batch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The target object name (e.g. `contacts`, `events`). Must match an object visible in `metadata_list_objects`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicRecordUpsertBatchRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordBatchIngestionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "records",
        "description": "Submit a batch of records for upsert ingestion using the specified match key. The batch is queued asynchronously; poll the returned `jobId` with `records_get_job` for completion status. Maximum 10,000 records per request."
      }
    },
    "/records/{object_name}/jobs/{job_id}": {
      "get": {
        "tags": [
          "records"
        ],
        "summary": "Get Record Batch Job Status",
        "operationId": "records_get_job",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "object_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Object Name"
            },
            "description": "The target object name the batch job was submitted for."
          },
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "title": "Job Id"
            },
            "description": "The batch job ID returned by `records_append_batch` or `records_upsert_batch`."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRecordJobStatusResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "records",
        "description": "Get the status and metrics for an async record batch job. Poll until `state` is `completed` or `failed`. Recommended polling interval: exponential backoff starting at 1 s."
      }
    },
    "/lists": {
      "get": {
        "tags": [
          "lists"
        ],
        "summary": "List Public Lists",
        "operationId": "lists_list",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "active",
                    "paused",
                    "archived"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Status"
            },
            "description": "Filter by list status. One of `active`, `paused`, or `archived`. Omit to return lists in all states."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1,
              "title": "Page"
            },
            "description": "Page number (1-based). Default: 1."
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 200,
              "minimum": 1,
              "default": 50,
              "title": "Pagesize"
            },
            "description": "Number of lists per page. Range: 1–200. Default: 50."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListCollectionResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "List all static lists in the workspace. Supports filtering by `status` and page-based pagination (`page`, `pageSize`, `total`)."
      },
      "post": {
        "tags": [
          "lists"
        ],
        "summary": "Create Public List",
        "operationId": "lists_create",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicListCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Create a new empty static list. Provide a `name` and optional `description`. Add members with `lists_upsert_members` after creation.",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/lists/{list_id}": {
      "get": {
        "tags": [
          "lists"
        ],
        "summary": "Get Public List",
        "operationId": "lists_get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Get a single list by ID, including its current member count and compute status."
      },
      "patch": {
        "tags": [
          "lists"
        ],
        "summary": "Update Public List",
        "operationId": "lists_update",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicListUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Update the `name` or `description` of an existing list. At least one field must be provided."
      },
      "delete": {
        "tags": [
          "lists"
        ],
        "summary": "Delete Public List",
        "operationId": "lists_delete",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Soft-delete a list. The list is marked archived and its members are removed from active evaluation."
      }
    },
    "/lists/{list_id}/members": {
      "get": {
        "tags": [
          "lists"
        ],
        "summary": "Get Public List Members",
        "operationId": "lists_get_members",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1,
              "title": "Page"
            },
            "description": "Page number (1-based). Default: 1."
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 500,
              "minimum": 1,
              "default": 100,
              "title": "Pagesize"
            },
            "description": "Number of member contact keys per page. Range: 1–500. Default: 100."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListMembersResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Page through the contact keys that are members of a list. Returns `contactKey` values with page-based pagination."
      }
    },
    "/lists/{list_id}/members:upsert": {
      "post": {
        "tags": [
          "lists"
        ],
        "summary": "Upsert Public List Members",
        "operationId": "lists_upsert_members",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicListMemberMutationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListMemberMutationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Add or retain contact keys in a list. Accepts up to 10,000 `contactKeys` per request. `normalizationMode` controls key normalization before membership evaluation."
      }
    },
    "/lists/{list_id}/members:remove": {
      "post": {
        "tags": [
          "lists"
        ],
        "summary": "Remove Public List Members",
        "operationId": "lists_remove_members",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "list_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "title": "List Id"
            },
            "description": "The unique identifier of the list (UUID format). Obtain from `lists_list` or the Experiture console."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicListMemberMutationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicListMemberMutationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-speakeasy-group": "lists",
        "description": "Remove contact keys from a list. Accepts up to 10,000 `contactKeys` per request. `normalizationMode` must match the mode used when the members were added."
      }
    },
    "/campaigns/{campaign_id}/summary": {
      "get": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Get Campaign Summary",
        "operationId": "get_public_campaign_summary",
        "description": "Returns a redacted public summary for a tenant-owned broadcast campaign.",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ],
        "x-required-scope": "campaigns:read",
        "responses": {
          "200": {
            "description": "Campaign summary returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignSummaryResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but public summary projection is not available for this campaign type yet."
          }
        }
      }
    },
    "/campaigns": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Create Campaign",
        "operationId": "create_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "201": {
            "description": "Campaign draft created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:create scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:create",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignCreateRequest"
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "List Campaigns",
        "operationId": "list_public_campaigns",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign list returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:read",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            },
            "required": false
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            },
            "required": false
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "createdAt",
                "updatedAt",
                "name"
              ],
              "default": "updatedAt"
            },
            "required": false
          },
          {
            "name": "sortDirection",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            },
            "required": false
          },
          {
            "name": "campaignType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "broadcast"
              ]
            },
            "required": false,
            "description": "Only broadcast is supported in public v1."
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "channel",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "email",
                "sms",
                "push",
                "direct_mail"
              ]
            },
            "required": false
          },
          {
            "name": "tag",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "name": "updatedAfter",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "name": "updatedBefore",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          }
        ]
      }
    },
    "/campaigns/{campaign_id}": {
      "get": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Get Campaign",
        "operationId": "get_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign object returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:read",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      },
      "patch": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Update Campaign Metadata",
        "operationId": "patch_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Campaign metadata updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:update scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:update",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignPatchRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      },
      "delete": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Delete Campaign",
        "operationId": "delete_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ],
        "x-required-scope": "campaigns:delete",
        "responses": {
          "204": {
            "description": "Campaign soft-deleted."
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:delete scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          }
        }
      }
    },
    "/campaigns/{campaign_id}/archive": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Archive Campaign",
        "operationId": "archive_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:delete scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:delete",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/clone": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Clone Campaign",
        "operationId": "clone_public_campaign",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:create scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:create",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignCloneRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/audience": {
      "put": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Replace Campaign Audience",
        "operationId": "replace_public_campaign_audience",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:update scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:update",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignAudienceReplaceRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/content": {
      "put": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Replace Campaign Content",
        "operationId": "replace_public_campaign_content",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:update scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:update",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignContentReplaceRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/schedule": {
      "put": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Set Schedule Intent",
        "operationId": "set_public_campaign_schedule_intent",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignObjectResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:update scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:update",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignScheduleIntentRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/preflight": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Run Campaign Preflight",
        "operationId": "run_public_campaign_preflight",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignPreflightResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:read",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmptyObject"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/schedule-jobs": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Create Schedule Job",
        "operationId": "create_public_campaign_schedule_job",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Dry-run validation completed without committing execution artifacts.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignScheduleCommandResponse"
                }
              }
            }
          },
          "201": {
            "description": "Schedule job created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignScheduleCommandResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:schedule scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:schedule",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignScheduleJobRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/send-jobs": {
      "post": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Create Send Job",
        "operationId": "create_public_campaign_send_job",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Dry-run validation completed without committing execution artifacts.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignScheduleCommandResponse"
                }
              }
            }
          },
          "201": {
            "description": "Send job created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignScheduleCommandResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:send scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:send",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCampaignSendJobRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/status": {
      "get": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Get Campaign Status",
        "operationId": "get_public_campaign_status",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignStatusResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required campaigns:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "campaigns:read",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    },
    "/campaigns/{campaign_id}/metrics": {
      "get": {
        "tags": [
          "public-campaigns"
        ],
        "summary": "Get Campaign Metrics",
        "operationId": "get_public_campaign_metrics",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicCampaignMetricsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or expired bearer token."
          },
          "403": {
            "description": "Bearer token does not include the required analytics:read scope."
          },
          "404": {
            "description": "Campaign not found in the token tenant."
          },
          "409": {
            "description": "Campaign exists, but the requested operation is not currently available for its state or type."
          }
        },
        "x-required-scope": "analytics:read",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Campaign identifier."
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "PublicAudiencePreviewPayload": {
        "properties": {
          "audienceId": {
            "type": "string",
            "title": "Audienceid"
          },
          "matchCount": {
            "type": "integer",
            "title": "Matchcount"
          },
          "isExact": {
            "type": "boolean",
            "title": "Isexact",
            "default": false
          },
          "sampleRecords": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Samplerecords"
          },
          "executionTimeMs": {
            "type": "integer",
            "title": "Executiontimems"
          },
          "fieldsUsed": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Fieldsused"
          }
        },
        "type": "object",
        "required": [
          "audienceId",
          "matchCount",
          "sampleRecords",
          "executionTimeMs"
        ],
        "title": "PublicAudiencePreviewPayload"
      },
      "PublicAudiencePreviewRequest": {
        "properties": {
          "limit": {
            "type": "integer",
            "maximum": 1000,
            "minimum": 1,
            "title": "Limit",
            "description": "Max sample records",
            "default": 100
          }
        },
        "type": "object",
        "title": "PublicAudiencePreviewRequest",
        "example": {
          "limit": 50
        }
      },
      "PublicAudiencePreviewResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicAudiencePreviewPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicAudiencePreviewResponse"
      },
      "PublicImportJobErrorPayload": {
        "properties": {
          "hasErrors": {
            "type": "boolean",
            "title": "Haserrors"
          },
          "errorFileUrl": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errorfileurl"
          },
          "expiresAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expiresat"
          },
          "errorCount": {
            "type": "integer",
            "title": "Errorcount",
            "default": 0
          }
        },
        "type": "object",
        "required": [
          "hasErrors"
        ],
        "title": "PublicImportJobErrorPayload"
      },
      "PublicImportJobErrorsResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicImportJobErrorPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicImportJobErrorsResponse"
      },
      "PublicImportJobInitPayload": {
        "properties": {
          "jobId": {
            "type": "string",
            "title": "Jobid"
          },
          "uploadUrl": {
            "type": "string",
            "title": "Uploadurl"
          },
          "expiresAt": {
            "type": "string",
            "title": "Expiresat"
          },
          "landingPath": {
            "type": "string",
            "title": "Landingpath"
          },
          "method": {
            "type": "string",
            "title": "Method"
          },
          "headers": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Headers"
          },
          "requestedBy": {
            "type": "string",
            "title": "Requestedby"
          }
        },
        "type": "object",
        "required": [
          "jobId",
          "uploadUrl",
          "expiresAt",
          "landingPath",
          "method",
          "requestedBy"
        ],
        "title": "PublicImportJobInitPayload"
      },
      "PublicImportJobInitResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicImportJobInitPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicImportJobInitResponse"
      },
      "PublicImportJobMappingPayload": {
        "properties": {
          "ok": {
            "type": "boolean",
            "title": "Ok"
          }
        },
        "type": "object",
        "required": [
          "ok"
        ],
        "title": "PublicImportJobMappingPayload"
      },
      "PublicImportJobMappingResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicImportJobMappingPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicImportJobMappingResponse"
      },
      "PublicImportJobStartPayload": {
        "properties": {
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "jobId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Jobid"
          },
          "lane": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lane"
          },
          "reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reason"
          },
          "rulesVersion": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rulesversion"
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message"
          }
        },
        "type": "object",
        "title": "PublicImportJobStartPayload"
      },
      "PublicImportJobStartResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicImportJobStartPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicImportJobStartResponse"
      },
      "PublicImportJobStatusPayload": {
        "properties": {
          "stage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stage"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          },
          "readRows": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Readrows"
          },
          "validRows": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Validrows"
          },
          "invalidRows": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Invalidrows"
          },
          "mergedInserts": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mergedinserts"
          },
          "mergedUpdates": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mergedupdates"
          },
          "startedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Startedat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "error": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Error"
          },
          "rowsTotal": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowstotal"
          },
          "rowsImported": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowsimported"
          },
          "rowsRejected": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowsrejected"
          },
          "successRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successrate"
          },
          "errorFile": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errorfile"
          },
          "errorSummary": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errorsummary"
          },
          "executionTimeline": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "title": "Executiontimeline"
          },
          "timingSummary": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timingsummary"
          }
        },
        "type": "object",
        "title": "PublicImportJobStatusPayload"
      },
      "PublicImportJobStatusResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicImportJobStatusPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicImportJobStatusResponse"
      },
      "PublicImportMappingRequest": {
        "properties": {
          "sourceFields": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Sourcefields"
          },
          "fieldMap": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "title": "Fieldmap"
          },
          "options": {
            "type": "object",
            "title": "Options"
          },
          "templateId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Templateid"
          },
          "importMode": {
            "type": "string",
            "title": "Importmode",
            "default": "balanced"
          },
          "parsingOverrides": {
            "$ref": "#/components/schemas/PublicParsingOverridesRequest"
          },
          "saveAsTemplate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicSaveTemplateRequest"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "sourceFields",
          "fieldMap"
        ],
        "title": "PublicImportMappingRequest",
        "example": {
          "sourceFields": {
            "email_address": "string",
            "FirstName": "string"
          },
          "fieldMap": {
            "email_address": "email",
            "FirstName": "first_name"
          },
          "options": {},
          "importMode": "balanced",
          "parsingOverrides": {}
        }
      },
      "PublicInitImportJobRequest": {
        "properties": {
          "objectName": {
            "type": "string",
            "title": "Objectname",
            "description": "Target object name"
          },
          "fileName": {
            "type": "string",
            "title": "Filename",
            "description": "Original file name"
          },
          "fileSize": {
            "type": "integer",
            "title": "Filesize",
            "description": "File size in bytes"
          },
          "createAudience": {
            "type": "boolean",
            "title": "Createaudience",
            "description": "Create a static audience from this import",
            "default": false
          },
          "audienceName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Audiencename",
            "description": "Audience name when createAudience is true"
          },
          "createList": {
            "type": "boolean",
            "title": "Createlist",
            "description": "Create a List from this import",
            "default": false
          },
          "listName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Listname",
            "description": "List name when createList is true"
          },
          "targetListId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Targetlistid",
            "description": "Existing List ID to update from this import"
          },
          "autoProfileAfterImport": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Autoprofileafterimport",
            "description": "Request profiling after import completion when supported"
          }
        },
        "type": "object",
        "required": [
          "objectName",
          "fileName",
          "fileSize"
        ],
        "title": "PublicInitImportJobRequest",
        "example": {
          "objectName": "contacts",
          "fileName": "customers.csv",
          "fileSize": 1048576,
          "createList": true,
          "listName": "Spring 2026 Upload"
        }
      },
      "PublicListCollectionPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicListSummaryPayload"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "pageSize": {
            "type": "integer",
            "title": "Pagesize"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "pageSize",
          "total"
        ],
        "title": "PublicListCollectionPayload"
      },
      "PublicListCollectionResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicListCollectionPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicListCollectionResponse"
      },
      "PublicListCreateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "PublicListCreateRequest",
        "example": {
          "name": "Email Unsubscribes — Q2 2026",
          "description": "Profiles who opted out of marketing email"
        }
      },
      "PublicListDetailPayload": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "type": {
            "type": "string",
            "const": "static",
            "title": "Type"
          },
          "containerType": {
            "type": "string",
            "const": "list",
            "title": "Containertype"
          },
          "membershipBehavior": {
            "type": "string",
            "const": "snapshot",
            "title": "Membershipbehavior"
          },
          "populationSource": {
            "type": "string",
            "enum": [
              "import",
              "manual"
            ],
            "title": "Populationsource"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "archived"
            ],
            "title": "Status"
          },
          "memberCount": {
            "type": "integer",
            "title": "Membercount"
          },
          "growth": {
            "type": "integer",
            "title": "Growth"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "queryTree": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Querytree"
          },
          "definitionVersion": {
            "type": "integer",
            "title": "Definitionversion"
          },
          "sourceImportJobId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sourceimportjobid"
          },
          "computeStatus": {
            "type": "string",
            "enum": [
              "idle",
              "preparing",
              "computing",
              "live",
              "failed"
            ],
            "title": "Computestatus"
          },
          "lastMaterializedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lastmaterializedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "type",
          "containerType",
          "membershipBehavior",
          "populationSource",
          "status",
          "memberCount",
          "growth",
          "definitionVersion",
          "computeStatus"
        ],
        "title": "PublicListDetailPayload"
      },
      "PublicListMemberItem": {
        "properties": {
          "contactKey": {
            "type": "string",
            "title": "Contactkey"
          }
        },
        "type": "object",
        "required": [
          "contactKey"
        ],
        "title": "PublicListMemberItem"
      },
      "PublicListMemberMutationPayload": {
        "properties": {
          "listId": {
            "type": "string",
            "title": "Listid"
          },
          "memberCount": {
            "type": "integer",
            "title": "Membercount"
          },
          "membershipVersion": {
            "type": "integer",
            "title": "Membershipversion"
          },
          "addedCount": {
            "type": "integer",
            "title": "Addedcount",
            "default": 0
          },
          "retainedCount": {
            "type": "integer",
            "title": "Retainedcount",
            "default": 0
          },
          "removedCount": {
            "type": "integer",
            "title": "Removedcount",
            "default": 0
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "listId",
          "memberCount",
          "membershipVersion"
        ],
        "title": "PublicListMemberMutationPayload"
      },
      "PublicListMemberMutationRequest": {
        "properties": {
          "contactKeys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "maxItems": 10000,
            "minItems": 1,
            "title": "Contactkeys"
          },
          "normalizationMode": {
            "type": "string",
            "enum": [
              "none",
              "email_lower_trim"
            ],
            "title": "Normalizationmode",
            "default": "email_lower_trim"
          }
        },
        "type": "object",
        "required": [
          "contactKeys"
        ],
        "title": "PublicListMemberMutationRequest",
        "example": {
          "contactKeys": [
            "a@example.com",
            "b@example.com"
          ],
          "normalizationMode": "email_lower_trim"
        }
      },
      "PublicListMemberMutationResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicListMemberMutationPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicListMemberMutationResponse"
      },
      "PublicListMembersPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicListMemberItem"
            },
            "type": "array",
            "title": "Items"
          },
          "page": {
            "type": "integer",
            "title": "Page"
          },
          "pageSize": {
            "type": "integer",
            "title": "Pagesize"
          },
          "total": {
            "type": "integer",
            "title": "Total"
          },
          "membershipVersion": {
            "type": "integer",
            "title": "Membershipversion"
          }
        },
        "type": "object",
        "required": [
          "items",
          "page",
          "pageSize",
          "total",
          "membershipVersion"
        ],
        "title": "PublicListMembersPayload"
      },
      "PublicListMembersResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicListMembersPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicListMembersResponse"
      },
      "PublicListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicListDetailPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicListResponse"
      },
      "PublicListSummaryPayload": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "type": {
            "type": "string",
            "const": "static",
            "title": "Type"
          },
          "containerType": {
            "type": "string",
            "const": "list",
            "title": "Containertype"
          },
          "membershipBehavior": {
            "type": "string",
            "const": "snapshot",
            "title": "Membershipbehavior"
          },
          "populationSource": {
            "type": "string",
            "enum": [
              "import",
              "manual"
            ],
            "title": "Populationsource"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "archived"
            ],
            "title": "Status"
          },
          "memberCount": {
            "type": "integer",
            "title": "Membercount"
          },
          "growth": {
            "type": "integer",
            "title": "Growth"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "type",
          "containerType",
          "membershipBehavior",
          "populationSource",
          "status",
          "memberCount",
          "growth"
        ],
        "title": "PublicListSummaryPayload"
      },
      "PublicListUpdateRequest": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 200,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "type": "object",
        "title": "PublicListUpdateRequest",
        "example": {
          "name": "Email Unsubscribes — Archived"
        }
      },
      "PublicMetadataFieldPayload": {
        "properties": {
          "fieldName": {
            "type": "string",
            "title": "Fieldname"
          },
          "displayName": {
            "type": "string",
            "title": "Displayname"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "dataType": {
            "type": "string",
            "title": "Datatype"
          },
          "nullable": {
            "type": "boolean",
            "title": "Nullable"
          },
          "isCustom": {
            "type": "boolean",
            "title": "Iscustom"
          },
          "isSystem": {
            "type": "boolean",
            "title": "Issystem"
          },
          "isKey": {
            "type": "boolean",
            "title": "Iskey"
          },
          "isUnique": {
            "type": "boolean",
            "title": "Isunique"
          },
          "isIndexed": {
            "type": "boolean",
            "title": "Isindexed"
          },
          "piiClassification": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Piiclassification"
          },
          "constraints": {
            "type": "object",
            "title": "Constraints"
          }
        },
        "type": "object",
        "required": [
          "fieldName",
          "displayName",
          "dataType",
          "nullable",
          "isCustom",
          "isSystem",
          "isKey",
          "isUnique",
          "isIndexed"
        ],
        "title": "PublicMetadataFieldPayload"
      },
      "PublicMetadataIngestionPayload": {
        "properties": {
          "single": {
            "type": "boolean",
            "title": "Single"
          },
          "jsonBatch": {
            "type": "boolean",
            "title": "Jsonbatch"
          },
          "fileImport": {
            "type": "boolean",
            "title": "Fileimport"
          },
          "defaultWriteMode": {
            "type": "string",
            "title": "Defaultwritemode"
          },
          "supportedWriteModes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Supportedwritemodes"
          },
          "eligibleMatchKeys": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Eligiblematchkeys"
          },
          "defaultMatchKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Defaultmatchkey"
          },
          "profileAliasPath": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Profilealiaspath"
          }
        },
        "type": "object",
        "required": [
          "single",
          "jsonBatch",
          "fileImport",
          "defaultWriteMode"
        ],
        "title": "PublicMetadataIngestionPayload"
      },
      "PublicMetadataObjectDetailPayload": {
        "properties": {
          "objectName": {
            "type": "string",
            "title": "Objectname"
          },
          "displayName": {
            "type": "string",
            "title": "Displayname"
          },
          "pluralDisplayName": {
            "type": "string",
            "title": "Pluraldisplayname"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "objectType": {
            "type": "string",
            "title": "Objecttype"
          },
          "activeVersion": {
            "type": "integer",
            "title": "Activeversion"
          },
          "primaryProfileRoot": {
            "type": "boolean",
            "title": "Primaryprofileroot"
          },
          "ingestion": {
            "$ref": "#/components/schemas/PublicMetadataIngestionPayload"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/PublicMetadataFieldPayload"
            },
            "type": "array",
            "title": "Fields"
          }
        },
        "type": "object",
        "required": [
          "objectName",
          "displayName",
          "pluralDisplayName",
          "objectType",
          "activeVersion",
          "primaryProfileRoot",
          "ingestion"
        ],
        "title": "PublicMetadataObjectDetailPayload"
      },
      "PublicMetadataObjectDetailResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicMetadataObjectDetailPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicMetadataObjectDetailResponse"
      },
      "PublicMetadataObjectListPayload": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicMetadataObjectSummaryPayload"
            },
            "type": "array",
            "title": "Items"
          }
        },
        "type": "object",
        "title": "PublicMetadataObjectListPayload"
      },
      "PublicMetadataObjectListResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicMetadataObjectListPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicMetadataObjectListResponse"
      },
      "PublicMetadataObjectSummaryPayload": {
        "properties": {
          "objectName": {
            "type": "string",
            "title": "Objectname"
          },
          "displayName": {
            "type": "string",
            "title": "Displayname"
          },
          "pluralDisplayName": {
            "type": "string",
            "title": "Pluraldisplayname"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category"
          },
          "objectType": {
            "type": "string",
            "title": "Objecttype"
          },
          "activeVersion": {
            "type": "integer",
            "title": "Activeversion"
          },
          "primaryProfileRoot": {
            "type": "boolean",
            "title": "Primaryprofileroot"
          },
          "ingestion": {
            "$ref": "#/components/schemas/PublicMetadataIngestionPayload"
          }
        },
        "type": "object",
        "required": [
          "objectName",
          "displayName",
          "pluralDisplayName",
          "objectType",
          "activeVersion",
          "primaryProfileRoot",
          "ingestion"
        ],
        "title": "PublicMetadataObjectSummaryPayload"
      },
      "PublicParsingOverridesRequest": {
        "properties": {
          "dateOrder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dateorder"
          },
          "defaultTimezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Defaulttimezone"
          },
          "decimalSeparator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Decimalseparator"
          },
          "thousandsSeparator": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Thousandsseparator"
          },
          "booleanTrueTokens": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booleantruetokens"
          },
          "booleanFalseTokens": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booleanfalsetokens"
          },
          "allowLocalPhoneNumbers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Allowlocalphonenumbers"
          },
          "phoneDefaultCountry": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phonedefaultcountry"
          }
        },
        "type": "object",
        "title": "PublicParsingOverridesRequest"
      },
      "PublicRecordAcceptedPayload": {
        "properties": {
          "operation": {
            "type": "string",
            "enum": [
              "append",
              "upsert"
            ],
            "title": "Operation"
          },
          "objectName": {
            "type": "string",
            "title": "Objectname"
          },
          "accepted": {
            "type": "boolean",
            "const": true,
            "title": "Accepted",
            "default": true
          },
          "acceptedAt": {
            "type": "string",
            "title": "Acceptedat"
          },
          "acceptedRecords": {
            "type": "integer",
            "title": "Acceptedrecords"
          },
          "matchKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchkey"
          }
        },
        "type": "object",
        "required": [
          "operation",
          "objectName",
          "acceptedAt",
          "acceptedRecords"
        ],
        "title": "PublicRecordAcceptedPayload"
      },
      "PublicRecordAcceptedResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "const": true,
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicRecordAcceptedPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicRecordAcceptedResponse"
      },
      "PublicRecordBatchIngestionPayload": {
        "properties": {
          "operation": {
            "type": "string",
            "enum": [
              "append-batch",
              "upsert-batch"
            ],
            "title": "Operation"
          },
          "objectName": {
            "type": "string",
            "title": "Objectname"
          },
          "jobId": {
            "type": "string",
            "title": "Jobid"
          },
          "state": {
            "type": "string",
            "title": "State"
          },
          "acceptedRecords": {
            "type": "integer",
            "title": "Acceptedrecords"
          },
          "statusPath": {
            "type": "string",
            "title": "Statuspath"
          },
          "matchKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchkey"
          }
        },
        "type": "object",
        "required": [
          "operation",
          "objectName",
          "jobId",
          "state",
          "acceptedRecords",
          "statusPath"
        ],
        "title": "PublicRecordBatchIngestionPayload"
      },
      "PublicRecordBatchIngestionResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "const": true,
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicRecordBatchIngestionPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicRecordBatchIngestionResponse"
      },
      "PublicRecordBatchRequest": {
        "properties": {
          "records": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "maxItems": 10000,
            "minItems": 1,
            "title": "Records"
          }
        },
        "type": "object",
        "required": [
          "records"
        ],
        "title": "PublicRecordBatchRequest",
        "example": {
          "records": [
            {
              "email": "a@example.com"
            },
            {
              "email": "b@example.com"
            }
          ]
        }
      },
      "PublicRecordJobMetricsPayload": {
        "properties": {
          "readRows": {
            "type": "integer",
            "title": "Readrows"
          },
          "validRows": {
            "type": "integer",
            "title": "Validrows"
          },
          "invalidRows": {
            "type": "integer",
            "title": "Invalidrows"
          },
          "mergedInserts": {
            "type": "integer",
            "title": "Mergedinserts"
          },
          "mergedUpdates": {
            "type": "integer",
            "title": "Mergedupdates"
          },
          "mergedRetained": {
            "type": "integer",
            "title": "Mergedretained"
          }
        },
        "type": "object",
        "required": [
          "readRows",
          "validRows",
          "invalidRows",
          "mergedInserts",
          "mergedUpdates",
          "mergedRetained"
        ],
        "title": "PublicRecordJobMetricsPayload"
      },
      "PublicRecordJobStatusPayload": {
        "properties": {
          "jobId": {
            "type": "string",
            "title": "Jobid"
          },
          "objectName": {
            "type": "string",
            "title": "Objectname"
          },
          "state": {
            "type": "string",
            "title": "State"
          },
          "stage": {
            "type": "string",
            "title": "Stage"
          },
          "fileName": {
            "type": "string",
            "title": "Filename"
          },
          "fileSize": {
            "type": "integer",
            "title": "Filesize"
          },
          "metrics": {
            "$ref": "#/components/schemas/PublicRecordJobMetricsPayload"
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Createdat"
          },
          "startedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Startedat"
          },
          "completedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Completedat"
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Updatedat"
          },
          "errorMessage": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errormessage"
          },
          "errorDetails": {
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Errordetails"
          },
          "rowsTotal": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowstotal"
          },
          "rowsImported": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowsimported"
          },
          "rowsRejected": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rowsrejected"
          },
          "successRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Successrate"
          },
          "errorSummary": {
            "anyOf": [
              {},
              {
                "type": "null"
              }
            ],
            "title": "Errorsummary"
          }
        },
        "type": "object",
        "required": [
          "jobId",
          "objectName",
          "state",
          "stage",
          "fileName",
          "fileSize",
          "metrics"
        ],
        "title": "PublicRecordJobStatusPayload"
      },
      "PublicRecordJobStatusResponse": {
        "properties": {
          "success": {
            "type": "boolean",
            "const": true,
            "title": "Success",
            "default": true
          },
          "data": {
            "$ref": "#/components/schemas/PublicRecordJobStatusPayload"
          }
        },
        "type": "object",
        "required": [
          "data"
        ],
        "title": "PublicRecordJobStatusResponse"
      },
      "PublicRecordRequest": {
        "properties": {
          "record": {
            "type": "object",
            "minProperties": 1,
            "title": "Record"
          }
        },
        "type": "object",
        "required": [
          "record"
        ],
        "title": "PublicRecordRequest",
        "example": {
          "record": {
            "event_name": "page_view",
            "email": "jane@example.com"
          }
        }
      },
      "PublicRecordUpsertBatchRequest": {
        "properties": {
          "records": {
            "items": {
              "type": "object"
            },
            "type": "array",
            "maxItems": 10000,
            "minItems": 1,
            "title": "Records"
          },
          "matchKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchkey"
          }
        },
        "type": "object",
        "required": [
          "records"
        ],
        "title": "PublicRecordUpsertBatchRequest",
        "example": {
          "records": [
            {
              "email": "a@example.com",
              "tier": "gold"
            }
          ],
          "matchKey": "email"
        }
      },
      "PublicRecordUpsertRequest": {
        "properties": {
          "record": {
            "type": "object",
            "minProperties": 1,
            "title": "Record"
          },
          "matchKey": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Matchkey"
          }
        },
        "type": "object",
        "required": [
          "record"
        ],
        "title": "PublicRecordUpsertRequest",
        "example": {
          "record": {
            "email": "jane@example.com",
            "tier": "gold"
          },
          "matchKey": "email"
        }
      },
      "PublicSaveTemplateRequest": {
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "title": "Name"
          },
          "replaceTemplateId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Replacetemplateid"
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "PublicSaveTemplateRequest"
      },
      "PublicStartImportJobRequest": {
        "properties": {
          "lane": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lane",
            "default": "auto"
          },
          "clusterSize": {
            "type": "string",
            "title": "Clustersize",
            "default": "small"
          }
        },
        "type": "object",
        "title": "PublicStartImportJobRequest",
        "example": {
          "lane": "auto",
          "clusterSize": "small"
        }
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "PublicCampaignSummaryResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/PublicCampaignSummary"
          }
        },
        "title": "PublicCampaignSummaryResponse"
      },
      "PublicCampaignSummary": {
        "type": "object",
        "required": [
          "campaignId",
          "name",
          "campaignType",
          "authoringStatus",
          "createdAt",
          "updatedAt",
          "schedule",
          "audience",
          "content",
          "preflight",
          "latestExecution",
          "links"
        ],
        "properties": {
          "campaignId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "campaignType": {
            "type": "string",
            "enum": [
              "broadcast"
            ]
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "authoringStatus": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "schedule": {
            "$ref": "#/components/schemas/PublicCampaignScheduleSummary"
          },
          "audience": {
            "$ref": "#/components/schemas/PublicCampaignAudienceSummary"
          },
          "content": {
            "$ref": "#/components/schemas/PublicCampaignContentSummary"
          },
          "preflight": {
            "$ref": "#/components/schemas/PublicCampaignPreflightSummary"
          },
          "latestExecution": {
            "$ref": "#/components/schemas/PublicCampaignLatestExecutionSummary"
          },
          "links": {
            "type": "object",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "type": "string"
              }
            }
          }
        },
        "title": "PublicCampaignSummary"
      },
      "PublicCampaignScheduleSummary": {
        "type": "object",
        "required": [
          "mode",
          "sendAt",
          "timezone",
          "scheduled"
        ],
        "properties": {
          "mode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "sendAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduled": {
            "type": "boolean"
          }
        },
        "title": "PublicCampaignScheduleSummary"
      },
      "PublicCampaignAudienceSummary": {
        "type": "object",
        "required": [
          "included",
          "excluded",
          "reach"
        ],
        "properties": {
          "included": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicCampaignAudienceBindingSummary"
            }
          },
          "excluded": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicCampaignAudienceBindingSummary"
            }
          },
          "reach": {
            "$ref": "#/components/schemas/PublicCampaignReachSummary"
          }
        },
        "title": "PublicCampaignAudienceSummary"
      },
      "PublicCampaignAudienceBindingSummary": {
        "type": "object",
        "required": [
          "id",
          "name",
          "type",
          "memberCount"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "audience",
              "segment"
            ]
          },
          "memberCount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "PublicCampaignAudienceBindingSummary"
      },
      "PublicCampaignReachSummary": {
        "type": "object",
        "required": [
          "status",
          "evaluatedCount",
          "evaluatedAt",
          "isStale"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "idle",
              "pending",
              "ok",
              "failed"
            ]
          },
          "evaluatedCount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "evaluatedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "isStale": {
            "type": "boolean"
          }
        },
        "title": "PublicCampaignReachSummary"
      },
      "PublicCampaignContentSummary": {
        "type": "object",
        "required": [
          "template",
          "proofStatus"
        ],
        "properties": {
          "template": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicCampaignTemplateSummary"
              },
              {
                "type": "null"
              }
            ]
          },
          "proofStatus": {
            "type": "string"
          }
        },
        "title": "PublicCampaignContentSummary"
      },
      "PublicCampaignTemplateSummary": {
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "channel"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "channel": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "PublicCampaignTemplateSummary"
      },
      "PublicCampaignPreflightSummary": {
        "type": "object",
        "required": [
          "status",
          "checks"
        ],
        "properties": {
          "status": {
            "type": "string"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "title": "PublicCampaignPreflightSummary"
      },
      "PublicCampaignLatestExecutionSummary": {
        "type": "object",
        "required": [
          "status",
          "lastExecutionAt",
          "counts"
        ],
        "properties": {
          "status": {
            "type": "string"
          },
          "lastExecutionAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "counts": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicCampaignExecutionCounts"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "title": "PublicCampaignLatestExecutionSummary"
      },
      "PublicCampaignExecutionCounts": {
        "type": "object",
        "required": [
          "scheduled",
          "hydrated",
          "composed",
          "injected",
          "sent",
          "failed"
        ],
        "properties": {
          "scheduled": {
            "type": "integer"
          },
          "hydrated": {
            "type": "integer"
          },
          "composed": {
            "type": "integer"
          },
          "injected": {
            "type": "integer"
          },
          "sent": {
            "type": "integer"
          },
          "failed": {
            "type": "integer"
          }
        },
        "title": "PublicCampaignExecutionCounts"
      },
      "PublicCampaignAudienceRef": {
        "type": "object",
        "required": [
          "audienceId",
          "type"
        ],
        "properties": {
          "audienceId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "enum": [
              "audience",
              "segment"
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignAudienceReplaceRequest": {
        "type": "object",
        "required": [
          "include"
        ],
        "properties": {
          "include": {
            "type": "array",
            "minItems": 1,
            "maxItems": 25,
            "items": {
              "$ref": "#/components/schemas/PublicCampaignAudienceRef"
            }
          },
          "exclude": {
            "type": "array",
            "maxItems": 25,
            "items": {
              "$ref": "#/components/schemas/PublicCampaignAudienceRef"
            }
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignContentSeed": {
        "type": "object",
        "properties": {
          "templateId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "senderProfileId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectLine": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignContentReplaceRequest": {
        "type": "object",
        "required": [
          "templateId"
        ],
        "properties": {
          "templateId": {
            "type": "string",
            "format": "uuid"
          },
          "senderProfileId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subjectLine": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignScheduleSeed": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "now",
              "at"
            ]
          },
          "sendAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignScheduleIntentRequest": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "now",
              "at"
            ]
          },
          "sendAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignCreateRequest": {
        "type": "object",
        "required": [
          "campaignType",
          "name",
          "channel"
        ],
        "properties": {
          "campaignType": {
            "type": "string",
            "enum": [
              "broadcast",
              "journey"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "channel": {
            "type": "string",
            "enum": [
              "email",
              "sms",
              "push",
              "direct_mail"
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "type": "array",
            "maxItems": 25,
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "content": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicCampaignContentSeed"
              },
              {
                "type": "null"
              }
            ]
          },
          "audience": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicCampaignAudienceReplaceRequest"
              },
              {
                "type": "null"
              }
            ]
          },
          "schedule": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicCampaignScheduleSeed"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignPatchRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "type": "array",
            "maxItems": 25,
            "items": {
              "type": "string",
              "maxLength": 100
            }
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignCloneRequest": {
        "type": "object",
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "includeAudience": {
            "type": "boolean"
          },
          "includeContent": {
            "type": "boolean"
          },
          "includeSchedule": {
            "type": "boolean"
          },
          "externalId": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "metadata": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignScheduleJobRequest": {
        "type": "object",
        "properties": {
          "sendAt": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "dryRun": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignSendJobRequest": {
        "type": "object",
        "properties": {
          "dryRun": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PublicCampaignCreatePayload": {
        "type": "object",
        "required": [
          "campaignId",
          "versionId",
          "campaignType",
          "authoringStatus",
          "channel",
          "links"
        ],
        "properties": {
          "campaignId": {
            "type": "string",
            "format": "uuid"
          },
          "versionId": {
            "type": "string",
            "format": "uuid"
          },
          "campaignType": {
            "type": "string",
            "enum": [
              "broadcast"
            ]
          },
          "authoringStatus": {
            "type": "string",
            "enum": [
              "draft"
            ]
          },
          "channel": {
            "type": "string",
            "enum": [
              "email",
              "sms",
              "push",
              "direct_mail"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PublicCampaignCreateResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/PublicCampaignCreatePayload"
          }
        }
      },
      "PublicCampaignListItem": {
        "type": "object",
        "required": [
          "campaignId",
          "name",
          "campaignType",
          "authoringStatus",
          "createdAt",
          "updatedAt",
          "links"
        ],
        "properties": {
          "campaignId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "campaignType": {
            "type": "string",
            "enum": [
              "broadcast"
            ]
          },
          "channel": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "email",
                  "sms",
                  "push",
                  "direct_mail"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "authoringStatus": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PublicCampaignListResponse": {
        "type": "object",
        "required": [
          "success",
          "data",
          "pagination"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicCampaignListItem"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "total",
              "limit",
              "offset"
            ],
            "properties": {
              "total": {
                "type": "integer"
              },
              "limit": {
                "type": "integer"
              },
              "offset": {
                "type": "integer"
              }
            }
          }
        }
      },
      "PublicCampaignObject": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PublicCampaignSummary"
          },
          {
            "type": "object",
            "required": [
              "versionId",
              "description",
              "category",
              "tags",
              "externalId",
              "metadata"
            ],
            "properties": {
              "versionId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "category": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "externalId": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "metadata": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "links": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "PublicCampaignObjectResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/PublicCampaignObject"
          }
        }
      },
      "PublicCampaignPreflightIssue": {
        "type": "object",
        "required": [
          "severity",
          "code",
          "message"
        ],
        "properties": {
          "severity": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "step": {
            "type": "object"
          },
          "refs": {
            "type": "object"
          },
          "remediation": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "PublicCampaignPreflightReport": {
        "type": "object",
        "required": [
          "journeyId",
          "versionId",
          "canPublish",
          "evaluatedAt",
          "summary",
          "issues",
          "bindingsPreview"
        ],
        "properties": {
          "journeyId": {
            "type": "string",
            "format": "uuid"
          },
          "versionId": {
            "type": "string",
            "format": "uuid"
          },
          "canPublish": {
            "type": "boolean"
          },
          "evaluatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "summary": {
            "type": "object",
            "required": [
              "blockers",
              "warnings",
              "info"
            ],
            "properties": {
              "blockers": {
                "type": "integer"
              },
              "warnings": {
                "type": "integer"
              },
              "info": {
                "type": "integer"
              }
            }
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicCampaignPreflightIssue"
            }
          },
          "bindingsPreview": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "PublicCampaignPreflightResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/PublicCampaignPreflightReport"
          }
        }
      },
      "PublicCampaignScheduleCommandBinding": {
        "type": "object",
        "required": [
          "journey_version_id",
          "node_key",
          "manifest_id",
          "placeholder_manifest_id",
          "touchpoint_id",
          "channel"
        ],
        "properties": {
          "journey_version_id": {
            "type": "string",
            "format": "uuid"
          },
          "node_key": {
            "type": "string"
          },
          "manifest_id": {
            "type": "string",
            "format": "uuid"
          },
          "placeholder_manifest_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "touchpoint_id": {
            "type": "integer"
          },
          "channel": {
            "type": "string"
          }
        }
      },
      "PublicCampaignScheduleCommandPayload": {
        "type": "object",
        "required": [
          "journeyId",
          "versionId",
          "status",
          "warnings",
          "bindings"
        ],
        "properties": {
          "journeyId": {
            "type": "string",
            "format": "uuid"
          },
          "versionId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "published"
            ]
          },
          "dryRun": {
            "type": "boolean"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bindings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicCampaignScheduleCommandBinding"
            }
          },
          "manifestId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduleId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "touchpointId": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "sendAt": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          }
        }
      },
      "PublicCampaignScheduleCommandResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "$ref": "#/components/schemas/PublicCampaignScheduleCommandPayload"
          }
        }
      },
      "PublicCampaignStatusResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "PublicCampaignMetricsResponse": {
        "type": "object",
        "required": [
          "success",
          "data"
        ],
        "properties": {
          "success": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "data": {
            "type": "object",
            "required": [
              "campaignId",
              "counts"
            ],
            "properties": {
              "campaignId": {
                "type": "string",
                "format": "uuid"
              },
              "counts": {
                "$ref": "#/components/schemas/PublicCampaignExecutionCounts"
              }
            }
          }
        }
      },
      "EmptyObject": {
        "type": "object",
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "tags": [
    {
      "name": "records",
      "description": "Write individual records or batches to any object."
    },
    {
      "name": "profiles",
      "description": "Upsert unified profile records with identity resolution."
    },
    {
      "name": "imports",
      "description": "Async file-based import jobs from object storage."
    },
    {
      "name": "lists",
      "description": "Static lists — create, manage membership, and paginate members."
    },
    {
      "name": "audiences",
      "description": "Preview and size rule-based audience segments."
    },
    {
      "name": "metadata",
      "description": "Inspect object schemas available in the workspace."
    }
  ],
  "servers": [
    {
      "url": "https://api.experiture.ai/public/v1",
      "description": "Experiture AI public API edge"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Metadata",
      "tags": [
        "public-metadata"
      ]
    },
    {
      "name": "Ingestion",
      "tags": [
        "public-profiles",
        "public-records",
        "public-import-jobs"
      ]
    },
    {
      "name": "Lists",
      "tags": [
        "public-lists"
      ]
    },
    {
      "name": "Audience preview",
      "tags": [
        "public-audiences"
      ]
    }
  ]
}
