{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/eventship-com/json-schema/eventship-com-api-response-external-hub-list-schema.json",
  "title": "ApiResponse[ExternalHubList]",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/eventship-com-hubs-api-openapi.yml#/components/schemas/ApiResponse_ExternalHubList_",
  "properties": {
    "data": {
      "$ref": "#/$defs/ExternalHubList"
    },
    "success": {
      "type": "boolean",
      "title": "Success",
      "default": true
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Message"
    }
  },
  "type": "object",
  "required": [
    "data"
  ],
  "$defs": {
    "ExternalHub": {
      "properties": {
        "slug": {
          "type": "string",
          "title": "Slug"
        },
        "title": {
          "type": "string",
          "title": "Title"
        },
        "eventType": {
          "type": "string",
          "title": "Eventtype",
          "description": "Either \"hub\" (a multi-day series container) or \"event\"."
        },
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Status"
        },
        "isPublic": {
          "type": "boolean",
          "title": "Ispublic",
          "description": "False for a private hub. Private and unlisted hubs are kept out of discovery and search, but their schedule is still readable by anyone holding the hub's link.",
          "default": true
        },
        "unlisted": {
          "type": "boolean",
          "title": "Unlisted",
          "description": "True for a link-only hub, kept out of discovery and search.",
          "default": false
        },
        "image": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Image"
        },
        "startDate": {
          "type": "string",
          "title": "Startdate"
        },
        "endDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Enddate"
        },
        "timezone": {
          "type": "string",
          "title": "Timezone",
          "default": "America/Los_Angeles"
        },
        "agendaEventCount": {
          "type": "integer",
          "title": "Agendaeventcount",
          "description": "Events currently on the agenda and publicly visible. A child that was added and has since been unpublished or made private is on the agenda but not counted here, because it is not showing on the hub page either.",
          "default": 0
        },
        "pendingSubmissionCount": {
          "type": "integer",
          "title": "Pendingsubmissioncount",
          "description": "Community submissions awaiting the hub host's review. Reviewing them is a dashboard action; this count is informational here.",
          "default": 0
        }
      },
      "type": "object",
      "required": [
        "slug",
        "title",
        "eventType",
        "startDate"
      ],
      "title": "ExternalHub",
      "description": "One of the host's events that carries a community agenda.\n\nReturned by ``GET /v1/hubs``. A hub is any event with\n``allowCommunityEvents: true``: the dedicated ``eventType: \"hub\"``\ncontainer for a multi-day series, and also a plain event whose host\nswitched the community-events toggle on. ``eventType`` tells them apart."
    },
    "ExternalHubList": {
      "properties": {
        "hubs": {
          "items": {
            "$ref": "#/$defs/ExternalHub"
          },
          "type": "array",
          "title": "Hubs"
        },
        "total": {
          "type": "integer",
          "title": "Total",
          "description": "Total hubs on the host, which may exceed the number returned. Page through them with `offset` while `hasMore` is true."
        },
        "hasMore": {
          "type": "boolean",
          "title": "Hasmore",
          "description": "True when hubs remain past this page. Request the next page with `offset` raised by `limit`.",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "hubs",
        "total"
      ],
      "title": "ExternalHubList",
      "description": "The host's hubs, capped by ``limit``."
    }
  }
}