viagogo Events API

View events on the viagogo platform

OpenAPI Specification

viagogo-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: viagogo Catalog Events API
  version: 1.0.0.49
  x-logo:
    url: https://img.vggcdn.net/img/assets/logo/viagogo_logo_apidocs.png
    backgroundColor: '#222222'
  description: View events on the viagogo platform
servers:
- url: https://api.viagogo.net
  description: Production
- url: https://sandbox.api.viagogo.net
  description: Sandbox
security:
- OAuth2:
  - manage:listingoffers
  - read:categories
  - read:events
  - read:venue_configurations
  - read:venues
tags:
- name: Events
  description: View events on the viagogo platform
paths:
  /catalog/events:
    get:
      tags:
      - Events
      summary: List events
      description: Lists all events on the viagogo platform. Use this endpoint to sync the entire viagogo event catalog with your application.
      operationId: Events_GetEvents
      parameters:
      - name: page
        in: query
        description: Specifies which page of data to retrieve.
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        description: Set custom page sizes on response.
        schema:
          type: integer
          format: int32
      - name: updated_since
        in: query
        description: Filters the response to only return items that have been updated since the given timestamp
        schema:
          type: string
          format: date-time
      - name: sort
        in: query
        description: Determines the ordering of items. A comma-separated string containing `resource_version`.
        schema:
          type: string
      - name: min_resource_version
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: uint64
      - name: country_code
        in: query
        schema:
          type: string
          description: Filters results to only include events located in the specified country.
      - name: latitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with longitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: longitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with latitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: max_distance_in_meters
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: When provided with latitude and longitude filters events returned to ones within the specified distance of the lat/long.
          format: int32
      - name: genre_id
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: Filters results to only include events for the specified genre id.
          format: int32
      - name: exclude_parking_passes
        in: query
        schema:
          type:
          - boolean
          - 'null'
          description: Filters results to remove parking passes
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Events'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
    put:
      tags:
      - Events
      summary: List events by event ids.
      description: List a specified set of events on the viagogo platform. Note that the eventID being passed can already be merged with another event. And in this case, details of the new event will be returned, if a different eventId is returned then it means that the event has been merged with the returned event. Also inside _embedded field of the response, a mapping between the original eventId and new eventId will be provided.
      operationId: Events_GetEventsByEventIds
      parameters:
      - name: page
        in: query
        description: Specifies which page of data to retrieve.
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        description: Set custom page sizes on response.
        schema:
          type: integer
          format: int32
      - name: updated_since
        in: query
        description: Filters the response to only return items that have been updated since the given timestamp
        schema:
          type: string
          format: date-time
      - name: sort
        in: query
        description: Determines the ordering of items. A comma-separated string containing `resource_version`.
        schema:
          type: string
      - name: min_resource_version
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: uint64
      - name: country_code
        in: query
        schema:
          type: string
          description: Filters results to only include events located in the specified country.
      - name: latitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with longitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: longitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with latitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: max_distance_in_meters
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: When provided with latitude and longitude filters events returned to ones within the specified distance of the lat/long.
          format: int32
      - name: genre_id
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: Filters results to only include events for the specified genre id.
          format: int32
      - name: exclude_parking_passes
        in: query
        schema:
          type:
          - boolean
          - 'null'
          description: Filters results to remove parking passes
      requestBody:
        x-name: body
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/PutEventsRequest'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Events'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '400':
          $ref: '#/components/responses/validation_failed'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/categories/{categoryId}/events:
    get:
      tags:
      - Events
      summary: List events by category id.
      description: List set of events filtered by category id on the viagogo platform.
      operationId: Events_GetEventsByCategoryId
      parameters:
      - name: categoryId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Specifies which page of data to retrieve.
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        description: Set custom page sizes on response.
        schema:
          type: integer
          format: int32
      - name: updated_since
        in: query
        description: Filters the response to only return items that have been updated since the given timestamp
        schema:
          type: string
          format: date-time
      - name: sort
        in: query
        description: Determines the ordering of items. A comma-separated string containing `resource_version`.
        schema:
          type: string
      - name: min_resource_version
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: uint64
      - name: country_code
        in: query
        schema:
          type: string
          description: Filters results to only include events located in the specified country.
      - name: latitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with longitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: longitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with latitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: max_distance_in_meters
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: When provided with latitude and longitude filters events returned to ones within the specified distance of the lat/long.
          format: int32
      - name: genre_id
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: Filters results to only include events for the specified genre id.
          format: int32
      - name: exclude_parking_passes
        in: query
        schema:
          type:
          - boolean
          - 'null'
          description: Filters results to remove parking passes
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Events'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/events/external_mappings/{platform}/{externalEventId}:
    get:
      tags:
      - Events
      summary: Get an event on the viagogo platform using an identifier from an external platform.
      operationId: Events_GetEventByExternalEventId
      parameters:
      - name: platform
        in: path
        required: true
        description: The name of the external platform. Can be `legacy_stubhub`
        schema:
          type: string
      - name: externalEventId
        in: path
        required: true
        description: The event identifier from the external platform.
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Event'
        '404':
          $ref: '#/components/responses/not_found'
          description: null
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/events/{eventId}:
    get:
      tags:
      - Events
      summary: Get an event
      description: Note that the eventID being passed can already be merged with another event. And in this case, details of the new event will be returned, if a different eventId is returned then it means that the event has been merged with the returned event. Also inside _embedded field of the response, a mapping between the original eventId and new eventId will be provided.
      operationId: Events_GetEvent
      parameters:
      - name: eventId
        in: path
        required: true
        description: The event identifier
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Event'
        '404':
          $ref: '#/components/responses/not_found'
          description: null
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/events/search:
    get:
      tags:
      - Events
      summary: Search events
      description: Search for events on the viagogo platform. Use this endpoint to search the entire viagogo event catalog with your application.
      operationId: Events_SearchEvents
      parameters:
      - name: q
        in: query
        description: The query text to be used to match events.
        schema:
          type: string
      - name: dateLocal
        in: query
        description: The specific date of the event, this is optional
        schema:
          type:
          - string
          - 'null'
          format: date-time
      - name: page
        in: query
        description: Specifies which page of data to retrieve.
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        description: Set custom page sizes on response.
        schema:
          type: integer
          format: int32
      - name: updated_since
        in: query
        description: Filters the response to only return items that have been updated since the given timestamp
        schema:
          type: string
          format: date-time
      - name: sort
        in: query
        description: Determines the ordering of items. A comma-separated string containing `resource_version`.
        schema:
          type: string
      - name: min_resource_version
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: uint64
      - name: country_code
        in: query
        schema:
          type: string
          description: Filters results to only include events located in the specified country.
      - name: latitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with longitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: longitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with latitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: max_distance_in_meters
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: When provided with latitude and longitude filters events returned to ones within the specified distance of the lat/long.
          format: int32
      - name: genre_id
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: Filters results to only include events for the specified genre id.
          format: int32
      - name: exclude_parking_passes
        in: query
        schema:
          type:
          - boolean
          - 'null'
          description: Filters results to remove parking passes
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Events'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/categories/{categoryId}/allevents:
    get:
      tags:
      - Events
      summary: Get all events under a CategoryId
      description: Finds all CategoryIds under the parents, and finds all events under all of them- de-duped by storing in a HashSet.
      operationId: Events_GetAllEventsByCategoryId
      parameters:
      - name: categoryId
        in: path
        required: true
        description: CategoryId for which we want all events
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Specifies which page of data to retrieve.
        schema:
          type: integer
          format: int32
      - name: page_size
        in: query
        description: Set custom page sizes on response.
        schema:
          type: integer
          format: int32
      - name: updated_since
        in: query
        description: Filters the response to only return items that have been updated since the given timestamp
        schema:
          type: string
          format: date-time
      - name: sort
        in: query
        description: Determines the ordering of items. A comma-separated string containing `resource_version`.
        schema:
          type: string
      - name: min_resource_version
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: uint64
      - name: country_code
        in: query
        schema:
          type: string
          description: Filters results to only include events located in the specified country.
      - name: latitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with longitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: longitude
        in: query
        schema:
          type:
          - number
          - 'null'
          description: When provided with latitude and distance filters events returned to ones within the specified distance of the lat/long.
          format: double
      - name: max_distance_in_meters
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: When provided with latitude and longitude filters events returned to ones within the specified distance of the lat/long.
          format: int32
      - name: genre_id
        in: query
        schema:
          type:
          - integer
          - 'null'
          description: Filters results to only include events for the specified genre id.
          format: int32
      - name: exclude_parking_passes
        in: query
        schema:
          type:
          - boolean
          - 'null'
          description: Filters results to remove parking passes
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/Events'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
  /catalog/mapevent:
    post:
      tags:
      - Events
      summary: Map request to StubHub Event, Venue and Category
      description: Finds mapped Event, Venue and Category information, if available.
      operationId: Events_MapEvent
      requestBody:
        x-name: body
        description: Request metadata for which we want all mapped information
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/MapEventRequestModel'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/MapEventResponseModel'
        '403':
          $ref: '#/components/responses/forbidden'
          description: null
        '400':
          $ref: '#/components/responses/validation_failed'
          description: null
        '401':
          $ref: '#/components/responses/requires_authentication'
          description: null
        '500':
          $ref: '#/components/responses/internal_server_error'
          description: null
      security:
      - OAuth2:
        - read:events
components:
  schemas:
    EventEmbeddedResources:
      title: EventEmbeddedResources
      type: object
      properties:
        categories:
          type:
          - array
          - 'null'
          description: The categories for this event.
          items:
            $ref: '#/components/schemas/EventCategory'
        external_mappings:
          type:
          - array
          - 'null'
          description: The external mappings for this event
          items:
            $ref: '#/components/schemas/EmbeddedExternalMapping'
        genre:
          description: The genre for this event.
          oneOf:
          - $ref: '#/components/schemas/EmbeddedCategory'
        merged_events:
          type:
          - array
          - 'null'
          description: The events that have been merged into this event.
          items:
            $ref: '#/components/schemas/MergedEntity'
        primaries:
          type:
          - array
          - 'null'
          description: The events that have been merged into this event.
          items:
            $ref: '#/components/schemas/Primary'
        venue:
          description: The venue where the event is taking place.
          oneOf:
          - $ref: '#/components/schemas/EmbeddedVenue'
    EmbeddedCategory:
      type: object
      description: A Category represents a grouping of events or other categories. Examples are “Concerts”, “Rock and Pop” and “Lady Gaga”.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The category identifier.
          format: int32
        name:
          type: string
          description: The name of the category.
        _links:
          oneOf:
          - $ref: '#/components/schemas/EmbeddedCategoryLinks'
        _embedded:
          oneOf:
          - $ref: '#/components/schemas/EmbeddedCategoryEmbeddedResources'
    EventCategoryLinks:
      title: EventCategoryLinks
      type: object
      properties:
        self:
          oneOf:
          - $ref: '#/components/schemas/Link'
    Event:
      type: object
      description: An event on the viagogo platform.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The event identifier.
          format: int32
        name:
          type: string
          description: The name of the event.
        start_date:
          type: string
          description: The date when the event starts.
          format: date-time
        end_date:
          type:
          - string
          - 'null'
          description: The date when the event ends.
          format: date-time
        on_sale_date:
          type:
          - string
          - 'null'
          description: The date when tickets for the event will go onsale.
          format: date-time
        date_confirmed:
          type: boolean
          description: True if the event start and end date have been confirmed; Otherwise, false.
        time_confirmed:
          type: boolean
          description: True if the event start and end time have been confirmed; Otherwise, false.
        type:
          type: string
          description: The type of the event. Can be `Main` or `Parking`
        min_ticket_price:
          description: The minimum ticket price of the event.
          oneOf:
          - $ref: '#/components/schemas/Money'
        status:
          type: string
          description: The status of the event. Can be `Normal`, `Postponed`, `Cancelled`, `Rescheduled`, `Relocated`, `RelocatedAndRescheduled`, `Draft`, `Contingent` and `Deleted`
        venue_config_id:
          type: integer
          description: The venue configuration identifier for this event.
          format: int32
        _links:
          oneOf:
          - $ref: '#/components/schemas/EventLinks'
        _embedded:
          oneOf:
          - $ref: '#/components/schemas/EventEmbeddedResources'
    EmbeddedExternalMapping:
      type: object
      description: 'An external mapping between a resource on the viagogo platform and the same resource on another platforms. '
      additionalProperties: false
      properties:
        id:
          type: string
          description: The identifier of the resource in the external platform
        platform_name:
          type: string
          description: The name of the external platform. Can be `legacy_stubhub`.
        _links:
          oneOf:
          - $ref: '#/components/schemas/EmbeddedExternalMappingLinks'
    EmbeddedVenue:
      type: object
      description: A venue is a location where an event takes place.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The venue identifier.
          format: int32
        name:
          type: string
          description: The name of the venue.
        city:
          type: string
          description: The name of the city where the venue is located.
        state_province:
          type: string
          description: The name of the State or Province where the venue is located.
        postal_code:
          type: string
          description: The postal code for the venue.
        latitude:
          type:
          - number
          - 'null'
          description: The latitude for the venue.
          format: double
        longitude:
          type:
          - number
          - 'null'
          description: The longitude for the venue.
          format: double
        _links:
          oneOf:
          - $ref: '#/components/schemas/EmbeddedVenueLinks'
        _embedded:
          oneOf:
          - $ref: '#/components/schemas/EmbeddedVenueEmbeddedResources'
    EventsLinks:
      title: EventsLinks
      type: object
      properties:
        self:
          oneOf:
          - $ref: '#/components/schemas/Link'
        first:
          oneOf:
          - $ref: '#/components/schemas/Link'
        last:
          oneOf:
          - $ref: '#/components/schemas/Link'
        next:
          oneOf:
          - $ref: '#/components/schemas/Link'
        prev:
          oneOf:
          - $ref: '#/components/schemas/Link'
    VenueEmbeddedResources:
      title: VenueEmbeddedResources
      type: object
      properties:
        country:
          description: The Country where the venue is located.
          oneOf:
          - $ref: '#/components/schemas/Country'
        external_mappings:
          type:
          - array
          - 'null'
          description: The external mappings for this venue
          items:
            $ref: '#/components/schemas/EmbeddedExternalMapping'
    EmbeddedExternalMappingLinks:
      title: EmbeddedExternalMappingLinks
      type: object
      properties:
        self:
          oneOf:
          - $ref: '#/components/schemas/Link'
    Primary:
      type: object
      additionalProperties: false
      properties:
        url:
          type: string
    Venue:
      type: object
      description: An venue on the viagogo platform.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The venue identifier.
          format: int32
        name:
          type: string
          description: The name of the venue.
        city:
          type: string
          description: The name of the city where the venue is located.
        state_province:
          type: string
          description: The name of the State or Province where the venue is located.
        postal_code:
          type: string
          description: The postal code for the venue.
        latitude:
          type:
          - number
          - 'null'
          description: The latitude for the venue.
          format: double
        longitude:
          type:
          - number
          - 'null'
          description: The longitude for the venue.
          format: double
        _links:
          oneOf:
          - $ref: '#/components/schemas/VenueLinks'
        _embedded:
          oneOf:
          - $ref: '#/components/schemas/VenueEmbeddedResources'
    MergedEntity:
      type: object
      description: An entity that has been merged into another entity.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The identifier for this entity.
          format: int32
    MapEventResponseModel:
      type: object
      additionalProperties: false
      properties:
        EventResource:
          oneOf:
          - $ref: '#/components/schemas/Event'
        VenueResource:
          oneOf:
          - $ref: '#/components/schemas/Venue'
        CategoryResource:
          oneOf:
          - $ref: '#/components/schemas/Category'
    Events:
      type: object
      additionalProperties: false
      properties:
        total_items:
          type:
          - integer
          - 'null'
          format: int32
        page:
          type:
          - integer
          - 'null'
          format: int32
        page_size:
          type:
          - integer
          - 'null'
          format: int32
        _links:
          oneOf:
          - $ref: '#/components/schemas/EventsLinks'
        _embedded:
          oneOf:
          - $ref: '#/components/schemas/EventsEmbeddedResources'
    EventCategoryEmbeddedResources:
      title: EventCategoryEmbeddedResources
      type: object
      properties:
        external_mappings:
          type:
          - array
          - 'null'
          description: The external mappings for this category
          items:
            $ref: '#/components/schemas/EmbeddedExternalMapping'
        merged_categories:
          type:
          - array
          - 'null'
          description: The categories that have been merged into this category.
          items:
            $ref: '#/components/schemas/MergedEntity'
    EventLinks:
      title: EventLinks
      type: object
      properties:
        self:
          oneOf:
          - $ref: '#/components/schemas/Link'
        event:webpage:
          description: Url on the website for the event
          oneOf:
          - $ref: '#/components/schemas/Link'
    Category:
      type: object
      description: An category on the viagogo platform.
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The category identifier.
          format: int32
        name:
          type: string
          description: The name of the category.
        _links:
          oneOf:
          - $ref: '#/components/schemas/CategoryLinks'
    EmbeddedCategoryLinks:
      title: EmbeddedCategoryLinks
      type: object
      properties:
        self:
          oneOf:
          - $ref: '#/components/schemas/Link'
    Country:
      type: object
      additionalProperties: false
      properties:
        code:
          type: string
          description: The two-letter ISO 3166 code for the country.
        name:
          type: string
          description: The name of the country.
        _links:
          oneOf:
          - $ref: '#/components/schemas/CountryLinks'
    EmbeddedVenueLinks:
      title: EmbeddedVenu

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/viagogo/refs/heads/main/openapi/viagogo-events-api-openapi.yml