{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/tickets-dev/json-schema/tickets-dev-events-page-schema.json",
  "title": "EventsPage",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/tickets-dev-openapi.json#/components/schemas/EventsPage",
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Event"
      }
    },
    "page": {
      "type": "number",
      "description": "Page number."
    },
    "pageSize": {
      "type": "number",
      "description": "Results per page."
    },
    "total": {
      "type": "number",
      "description": "Matching events."
    },
    "numberOfPages": {
      "type": "number",
      "description": "Pages in total."
    },
    "hasMore": {
      "type": "boolean"
    }
  },
  "$defs": {
    "Event": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Tickets.dev event id."
        },
        "name": {
          "type": "string",
          "description": "Event name."
        },
        "eventDateLocal": {
          "type": "string",
          "description": "Venue-local ISO 8601 with offset."
        },
        "eventDateUtc": {
          "type": "string",
          "description": "ISO 8601 UTC."
        },
        "venue": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Venue."
            },
            "city": {
              "type": "string",
              "description": "City."
            },
            "state": {
              "type": "string",
              "description": "State."
            },
            "country": {
              "type": "string",
              "description": "Country."
            },
            "timezone": {
              "type": "string",
              "description": "Time zone."
            }
          }
        },
        "performers": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "sources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/EventSource"
          }
        },
        "updatedAt": {
          "type": "string",
          "description": "When the catalog last updated this event."
        }
      }
    },
    "EventSource": {
      "type": "object",
      "properties": {
        "marketplace": {
          "type": "string",
          "description": "Marketplace key, e.g. ticketmaster."
        },
        "eventId": {
          "type": "string",
          "description": "The marketplace's own event id."
        },
        "url": {
          "type": "string",
          "description": "The event page on that marketplace: pass it to /v1/capture."
        }
      }
    }
  }
}