Skip to content
On this page

GraphQL Schema

graphql
"""Formatted as Iso date, UTC time"""
directive @dateTime on FIELD_DEFINITION | INPUT_FIELD_DEFINITION

"""Formatted as yyyy-mm-dd"""
directive @date on FIELD_DEFINITION | INPUT_FIELD_DEFINITION

type Country implements Errable {
  """
  The two-letter country code for the location’s country. For a list of 
  country codes, see ISO 3166-1 alpha-2.
  """
  iso: String

  """Name of the location’s Country."""
  name: [LocaleString]
  errors: [Error]!
}

type Countries implements Pageable & Errable {
  data: [Country]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input CountriesInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input CountryInput {
  iso: String!
  locales: [String]
}

type Query {
  countries(input: CountriesInput): Countries
  country(input: CountryInput): Country
  disciplines(input: DisciplinesInput): Disciplines
  discipline(input: DisciplineInput): Discipline
  eventCollections(input: EventCollectionsInput): EventCollections
  eventCollection(input: EventCollectionInput): EventCollection
  events(input: EventSearchInput): Events
  event(input: EventInput): Event

  """Return a location based on GeoPoint input"""
  geoLocation(input: GeoPointInput): GeoLocation
  organizations(input: OrganizationsInput): Organizations
  organization(input: OrganizationInput): Organization
  venues(input: VenuesInput): Venues
  venue(input: VenueInput): Venue
  widgets(input: WidgetsInput): Widgets
  widget(input: WidgetInput): Widget
}

type Discipline implements Errable {
  """Unique Identifier for this record."""
  id: ID
  name: [LocaleString]
  medias: Medias
  errors: [Error]!
}

type Disciplines implements Pageable & Errable {
  data: [Discipline]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input DisciplinesInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input DisciplineInput {
  id: ID!
  locales: [String]
}

type Error {
  """Error code"""
  errorCode: String

  """Short error message"""
  errorMessage: String

  """More specific detail about the error"""
  errorDetail: String
}

interface Errable {
  errors: [Error]
}

type EventCollection implements Errable {
  """Unique Identifier for this record."""
  id: ID

  """If true, events returned for this collection are based on geolocation."""
  geoLocate: Boolean

  """GeoPoint center for collection. Autodetected if not supplied."""
  geoPoint: GeoPoint

  """
  ISO 3166-1 alpha-2 country codes this collection is restricted to. (eg: US, CA)
  """
  countries: [String]

  """
  List of event statuses which should be excluded from this search
  Default: EventState.CANCELLED
  """
  eventStateExclude: [EventState]

  """
  List of event statuses which should be excluded from this search
  Default: undefined
  """
  eventStatusExclude: [EventStatus]

  """Shorter title, appropriate for navigation or control elements."""
  name: [LocaleString]

  """Longer title, appropriate for cards and page titles."""
  title: [LocaleString]

  """
  Duration from the current datetime to start looking for events. Positive = future, negative = past
  """
  eventStartDuration: String

  """
  Duration from the current datetime to end looking for events. Positive = future, negative = past
  """
  eventEndDuration: String

  """Start date used to find events for this collection."""
  eventStart: String

  """End date used to find events for this collection."""
  eventEnd: String

  """Restrict collection to these organization"""
  organizationInclude: [Organization]

  """Restrict Collection to these Disciplines"""
  disciplineInclude: [Discipline]

  """Matching events found in this collection"""
  events: Events

  """The computed event search used to return event data"""
  eventSearch: EventSearch
  errors: [Error]!
}

type EventCollections implements Pageable & Errable {
  data: [EventCollection]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input EventCollectionsInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input EventCollectionInput {
  id: ID!
  locales: [String]
}

type EventSearch implements Errable {
  """User Geolocation was used in this search. """
  geoLocate: Boolean!

  """GeoLocation used in the search."""
  geoLocation: GeoLocation!

  """
  ISO 3166-1 alpha-2 country codes this search is restricted to. (eg: US, CA)
  """
  countries: [Country]!

  """Searched for events after this date """
  eventStart: String!

  """Searched for events before this date """
  eventEnd: String!

  """List of event statuses which were excluded from this search"""
  eventStateExclude: [EventState]!

  """List of event statuses which were excluded from this search"""
  eventStatusExclude: [EventStatus]!

  """Search restricted to these Collections """
  eventCollectionInclude: [EventCollection]!

  """Search restricted to these Organizations"""
  organizationInclude: [Organization]!

  """Search restricted  to these Disciplines"""
  disciplineInclude: [Discipline]!

  """Max results per page"""
  limit: Int!
  locales: [String]
  errors: [Error]!
}

input EventSearchInput {
  """
  User Geolocation this search. if true, geoPoint will be autodetected if 
  not supplied.
  """
  geoLocate: Boolean

  """Geopoint center for this search. Autodetected if not supplied."""
  geoPoint: GeoPointInput

  """
  ISO 3166-1 alpha-2 country codes this search is restricted to. (eg: US, CA)
  """
  countries: [String]

  """Collections to include in the search."""
  eventCollections: [EventCollectionInput]

  """
  Find events after this date using half-closed intervals with inclusive 
  start dates, e.g. [start, end)
  """
  eventStart: String

  """
  Find events before this date using half-closed intervals with exclusive 
  end dates, e.g. [start, end)
  """
  eventEnd: String

  """
  List of event statuses which should be excluded from this search
  Default: EventState.CANCELLED
  """
  eventStateExclude: [EventState]

  """
  List of event statuses which should be excluded from this search
  Default: undefined
  """
  eventStatusExclude: [EventStatus]

  """Restrict search to these organization Ids"""
  organizationInclude: [String]

  """Restrict search to these Disciplines"""
  disciplineInclude: [String]
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

type Event implements Errable {
  """Unique Identifier for this record."""
  id: ID

  """Event name"""
  name: [LocaleString]

  """Start date-time for event - iso 8601 datetime in UTC"""
  eventStart: String

  """End date-time for event - iso 8601 datetime in UTC"""
  eventEnd: String

  """Start date-time for registration - iso 8601 datetime in UTC"""
  registrationStart: String

  """End date-time for registration - iso 8601 datetime in UTC"""
  registrationEnd: String

  """Event duration - iso 8601 duration"""
  eventDuration: String

  """Attendance mode for this event."""
  attendance: EventAttendance

  """State of event."""
  state: EventState

  """Status of event."""
  status: EventStatus

  """Full URL to event details page"""
  url: String
  disciplines: Disciplines
  organization: Organization
  primaryVenue: Venue
  venues: [Venue]
  metaDatas: MetaDatas
  segments: Segments
  medias: Medias

  """Collections this event belongs to"""
  eventCollections: EventCollections
  errors: [Error]!
}

type Events implements Pageable & Errable {
  data: [Event]

  """The computed event search used to return event data"""
  eventSearch: EventSearch
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input EventInput {
  id: ID!
  locales: [String]
}

enum EventState {
  CANCELLED
  SCHEDULED
  SUSPENDED
}

enum EventStatus {
  EVENT_ENDED
  EVENT_CANCELLED
  REGISTRATION_OPEN
  REGISTRATION_WILL_OPEN
  REGISTRATION_CLOSED
}

enum EventAttendance {
  ONLINE
  OFFLINE
  MIXED
}

type GeoLocation implements Errable {
  """GeoPoint used to identify this lcoation"""
  geoPoint: GeoPoint

  """City name for this location"""
  city: [LocaleString]

  """
  Contains a code (up to three characters) that represent the location’s region. 
  The region is the first-level subdivision (the broadest or least specific) of the ISO 3166-2 code.
  """
  regionCode: String

  """
  Contains the name of the location’s region. The region is the first-level 
  subdivision (the broadest or least specific) of the ISO 3166-2 code.
  """
  regionName: [LocaleString]

  """Country for this location"""
  country: Country

  """Postal code for this location"""
  postalCode: String

  """Metro code for this location"""
  metroCode: String

  """Contains the location’s time zone, in IANA time zone database format."""
  timeZone: String

  """Contains the location’s UTC offset."""
  utcOffset: String
  errors: [Error]!
}

type GeoPoint {
  """Location latitude"""
  lat: Float!

  """Location longitude"""
  lon: Float!

  """Radius used when identifying a location."""
  radius: Float

  """Unit used for Radius when identifying a location."""
  unit: GeoPointUnit
}

input GeoPointInput {
  """Location latitude"""
  lat: Float!

  """Location longitude"""
  lon: Float!

  """Radius used when identifying a location."""
  minRadius: Float
  maxRadius: Float

  """
  Unit used for Radius when identifying a location.
  Default: GeoPointUnit.MI
  """
  unit: GeoPointUnit
  locales: [String]
}

enum GeoPointUnit {
  """Kilometers"""
  KM

  """Miles"""
  MI
}

interface Localizable {
  """List of locale ISO codes to (eg: en-us)"""
  locales: [String]
}

type LocaleString {
  content: String!
  iso: String!
}

type Media implements Errable {
  id: ID
  altText: [LocaleString]

  """What type of media is this?"""
  type: MediaType

  """Tags to indicate which use cases this media is suitable for."""
  usage: [MediaUsage]
  url: String
  height: Int
  width: Int
  errors: [Error]!
}

type Medias implements Pageable & Errable {
  data: [Media]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

enum MediaType {
  VIDEO
  IMAGE
}

enum MediaUsage {
  HERO
  TILE
}

type MetaData implements Errable {
  key: String
  value: [LocaleString]
  errors: [Error]!
}

type MetaDatas implements Pageable & Errable {
  data: [MetaData]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

type Organization implements Errable {
  """Unique Identifier for this record."""
  id: ID
  name: [LocaleString]
  medias: Medias
  errors: [Error]!
}

type Organizations implements Pageable & Errable {
  data: [Organization]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input OrganizationsInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input OrganizationInput {
  id: ID!
  locales: [String]
}

interface Pageable {
  previousToken: String
  nextToken: String
  limit: Int
}

type Segment implements Errable {
  id: ID
  name: [LocaleString]
  disciplines: Disciplines
  venues: Venues
  segmentStart: String
  segmentEnd: String
  errors: [Error]!
}

type Segments implements Pageable & Errable {
  data: [Segment]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

type Venue implements Errable {
  """Unique Identifier for this record."""
  id: ID!
  name: [LocaleString]
  geoLocation: GeoLocation
  medias: Medias
  errors: [Error]!
}

type Venues implements Pageable & Errable {
  data: [Venue]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input VenuesInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input VenueInput {
  id: ID!
  locales: [String]
}

type Widget implements Errable {
  """Unique Identifier for this record."""
  id: ID!

  """The location used to return this widget data"""
  geoLocation: GeoLocation

  """Bag of strings used in the widget UI."""
  content: [MetaData]

  """The default colelction to display in the widget"""
  defaultEventCollection: EventCollection

  """Other collections avaialble in the widget"""
  eventCollections: EventCollections

  """
  Events matching the widget search criteria and/or detected geo location
  """
  events: Events

  """The computed event search used to return event data"""
  eventSearch: EventSearch
  errors: [Error]!
}

type Widgets implements Pageable & Errable {
  data: [Widget]
  previousToken: String
  nextToken: String
  limit: Int
  errors: [Error]!
}

input WidgetsInput {
  locales: [String]
  previousToken: String
  nextToken: String
  limit: Int
}

input WidgetInput {
  id: ID!
  eventSearch: EventSearchInput
  locales: [String]
}