{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/eventship-com/json-schema/eventship-com-paginated-response-external-attendee-schema.json",
  "title": "PaginatedResponse[ExternalAttendee]",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/eventship-com-attendees-api-openapi.yml#/components/schemas/PaginatedResponse_ExternalAttendee_",
  "properties": {
    "data": {
      "items": {
        "$ref": "#/$defs/ExternalAttendee"
      },
      "type": "array",
      "title": "Data"
    },
    "total": {
      "type": "integer",
      "title": "Total"
    },
    "page": {
      "type": "integer",
      "title": "Page"
    },
    "pageSize": {
      "type": "integer",
      "title": "Pagesize",
      "default": 20
    },
    "hasMore": {
      "type": "boolean",
      "title": "Hasmore"
    }
  },
  "type": "object",
  "required": [
    "data",
    "total",
    "page",
    "hasMore"
  ],
  "$defs": {
    "ExternalAttendee": {
      "properties": {
        "name": {
          "type": "string",
          "title": "Name"
        },
        "profileSlug": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Profileslug"
        },
        "companyName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Companyname"
        },
        "email": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Email"
        },
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Status"
        },
        "ticketType": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Tickettype"
        },
        "checkedIn": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Checkedin"
        },
        "registeredAt": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Registeredat"
        },
        "answers": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ExternalAttendeeAnswer"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Answers",
          "description": "This registrant's answers to the event's registration questions, in the questions' display order. Host view only, and only when the request sets `includeAnswers=true`; `null` otherwise. An answer appears once the registrant submitted it, whether the question is one of yours or one of Eventship's built-in profile questions."
        }
      },
      "type": "object",
      "required": [
        "name"
      ],
      "title": "ExternalAttendee",
      "description": "Attendee info for external API consumers.\n\nPublic fields (``name``, ``profileSlug``, ``companyName``) are always\npopulated. Host-only fields (``email``, ``status``, ``ticketType``,\n``checkedIn``, ``registeredAt``, ``answers``) are populated only when the\ncaller is a host of the event; confirmed attendees viewing a public guest\nlist see these as ``null``."
    },
    "ExternalAttendeeAnswer": {
      "properties": {
        "questionId": {
          "type": "integer",
          "title": "Questionid"
        },
        "questionKey": {
          "type": "string",
          "title": "Questionkey"
        },
        "questionText": {
          "type": "string",
          "title": "Questiontext"
        },
        "questionType": {
          "$ref": "#/$defs/QuestionType"
        },
        "isCustom": {
          "type": "boolean",
          "title": "Iscustom",
          "default": false
        },
        "answerText": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Answertext"
        },
        "answerJson": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Answerjson",
          "description": "Selected values for multi-choice questions. Populated instead of `answerText` for `multiselect`, and for any answer stored as a list of selections."
        }
      },
      "type": "object",
      "required": [
        "questionId",
        "questionKey",
        "questionText",
        "questionType"
      ],
      "title": "ExternalAttendeeAnswer",
      "description": "One registrant's answer to one of the event's registration questions.\n\nField names match ``ExternalRegistrationAnswer``, the shape a consumer POSTs\nto ``/register``, so an answer written through the API reads back under the\nsame keys; the extra fields here are the question's own metadata. It also\nmirrors ``MembershipAnswerSchema`` (``api/schemas/host_question.py``), the\nestablished host-facing answer payload, so the platform carries one answer\nshape rather than a per-surface invention. ``answerText`` is already\ndisplay-formatted — an encoded company (``<uuid>|<name>``) and a JSON\nmailing address are rendered the same way the guest-list CSV renders them.\n\nA question's identity is ``questionKey`` **plus** ``isCustom``: a host's own\nquestion may carry a system key, so a consumer matching \"this is the\nplatform's Company field\" must test both."
    },
    "QuestionType": {
      "type": "string",
      "enum": [
        "text",
        "textarea",
        "select",
        "checkbox",
        "multiselect",
        "address"
      ],
      "title": "QuestionType",
      "description": "Type of registration question on an event."
    }
  }
}