Tickitto Search API

The Search API from Tickitto — 2 operation(s) for search.

OpenAPI Specification

tickitto-search-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Authentication Search API
  version: 1.0.0
tags:
- name: Search
paths:
  /api/search/:
    get:
      tags:
      - Search
      summary: Search For Events
      description: "Searches for events from the Tickitto inventory and provides additional metadata about the search result. \n\nThe search endpoint is meant for use with the Tickitto website. \n\nThe search endpoint supports text search as well as filters for different event categories, cities, or countries to create a powerful contextual search experience. \n\nThe endpoint supports pagination via the `skip` and `limit` parameters and the returned `X-Total-Count` header."
      operationId: search
      security:
      - APIKeyHeader: []
      parameters:
      - name: t1
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Start of the date range in which returned events should have availability. Defaults to today.
          examples:
          - '2027-01-17'
          title: T1
        description: Start of the date range in which returned events should have availability. Defaults to today.
      - name: t2
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: End of the date range in which returned events should have availability. Defaults to 14 days from now.
          examples:
          - '2027-07-21'
          title: T2
        description: End of the date range in which returned events should have availability. Defaults to 14 days from now.
      - name: category
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Category or categories to restrict query to.
          examples:
          - - Sports
            - Bus Tours
            - Attractions
            - Family-Friendly
          default: []
          title: Category
        description: Category or categories to restrict query to.
      - name: city
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: City or cities to restrict query to.
          examples:
          - - Berlin
            - Dubai
            - London
          default: []
          title: City
        description: City or cities to restrict query to.
      - name: state
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: State or states to restrict query to.
          examples:
          - - Virginia
            - California
            - Texas
          default: []
          title: State
        description: State or states to restrict query to.
      - name: region
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Region or regions to restrict the query to.
          examples:
          - - Derbyshire
            - Umm Al-Quwain
          default: []
          title: Region
        description: Region or regions to restrict the query to.
      - name: country
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Countries to restrict query to.
          examples:
          - - United Arab Emirates
            - United Kingdom
            - Germany
          default: []
          title: Country
        description: Countries to restrict query to.
      - name: country_code
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            minLength: 2
            maxLength: 2
            pattern: '[A-Z][A-Z]'
          description: Two-letter ISO country codes to restrict query to.
          examples:
          - - AE
            - GB
            - DE
          default: []
          title: Country Code
        description: Two-letter ISO country codes to restrict query to.
      - name: performer
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Performers to restrict query to.
          default: []
          title: Performer
        description: Performers to restrict query to.
      - name: venue
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
          description: Venues to restrict query to.
          default: []
          title: Venue
        description: Venues to restrict query to.
      - name: event_type
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/EventType'
          description: Event types to restrict the query to.
          default: []
          title: Event Type
        description: Event types to restrict the query to.
      - name: min_price
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          description: The minimum price to restrict the query to.
          title: Min Price
        description: The minimum price to restrict the query to.
      - name: max_price
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          description: The maximum price to restrict the query to.
          title: Max Price
        description: The maximum price to restrict the query to.
      - name: currency
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 3
            maxLength: 3
            pattern: '[A-Z][A-Z][A-Z]'
          - type: 'null'
          description: The min/max price currency to use when using price-based query restrictions
          title: Currency
        description: The min/max price currency to use when using price-based query restrictions
      - name: text
        in: query
        required: false
        schema:
          type: string
          description: Text to perform a search of events with.
          examples:
          - marina dinner cruise
          default: ''
          title: Text
        description: Text to perform a search of events with.
      - name: partial_match
        in: query
        required: false
        schema:
          type: boolean
          description: Perform partial/substring text matching, includes fuzzy search (max 1 character change). Algolia search always performs partial/substring text matching.
          default: false
          title: Partial Match
        description: Perform partial/substring text matching, includes fuzzy search (max 1 character change). Algolia search always performs partial/substring text matching.
      - name: skip
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
            minimum: 0
          - type: 'null'
          description: Number of results to skip for pagination; see also `limit` and the `X-Total-Count` response header.
          default: 0
          title: Skip
        description: Number of results to skip for pagination; see also `limit` and the `X-Total-Count` response header.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          exclusiveMinimum: 0
          description: Number of results to return for pagination; see also `skip` and the `X-Total-Count` response header.
          default: 100
          title: Limit
        description: Number of results to return for pagination; see also `skip` and the `X-Total-Count` response header.
      - name: sort_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/ResultSort'
          - type: 'null'
          description: Sort order to use.If not specified, the default sort order is textual relevance if applicable, else geographical distance if applicable, else an arbitrary stable order.
          title: Sort By
        description: Sort order to use.If not specified, the default sort order is textual relevance if applicable, else geographical distance if applicable, else an arbitrary stable order.
      - name: event_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: List of event IDs to retrieve.
          examples:
          - - T849
            - T850
          title: Event Ids
        description: List of event IDs to retrieve.
      - name: should_raise
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Should Raise
      - name: profile_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Profile name
          title: Profile Name
        description: Profile name
      - name: hostname
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Associated hostname
          title: Hostname
        description: Associated hostname
      - name: accept-language
        in: header
        required: false
        schema:
          type: string
          default: en
          title: Accept-Language
      - name: origin
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Origin
      - required: false
        description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
        example: 123e4567-e89b-12d3-a456-426614174000
        schema:
          type: string
        name: X-Correlation-ID
        in: header
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
          headers:
            X-Total-Count:
              schema:
                type: integer
              description: The total number of events that exist for this query, ignoring pagination.
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '401':
          content:
            application/json:
              example:
                request_id: REQUEST123
                detail:
                - type: authentication_error.insufficient_permissions
                  msg: Invalid API key - this API key does not have the required permissions to access this resource
                  loc: []
                - type: authentication_error.invalid_key
                  msg: Invalid API key - this API key either does not exist or is invalid
                  loc: []
                - type: authentication_error.key_missing
                  msg: An API key is required to access this endpoint
                  loc: []
              schema:
                $ref: '#/components/schemas/ErrorBody'
          description: Unauthorized
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '404':
          content:
            application/json:
              example:
                request_id: REQUEST123
                detail:
                - type: event_error.event_not_found
                  msg: The requested event could not be found
                  loc: []
              schema:
                $ref: '#/components/schemas/ErrorBody'
          description: Not Found
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
  /api/search/autocomplete:
    get:
      tags:
      - Search
      summary: Get Search Autocomplete
      operationId: search_autocomplete
      security:
      - APIKeyHeader: []
      parameters:
      - name: text
        in: query
        required: true
        schema:
          type: string
          description: Text to perform a search of events with. Searches event title, city, and performer names.
          examples:
          - Lond
          title: Text
        description: Text to perform a search of events with. Searches event title, city, and performer names.
      - name: skip
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip for pagination; see also `limit` and the `X-Total-Count` response header.
          default: 0
          title: Skip
        description: Number of results to skip for pagination; see also `limit` and the `X-Total-Count` response header.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          exclusiveMinimum: 0
          description: Number of results to return for pagination; see also `skip` and the `X-Total-Count` response header.
          default: 100
          title: Limit
        description: Number of results to return for pagination; see also `skip` and the `X-Total-Count` response header.
      - name: profile_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Profile name
          title: Profile Name
        description: Profile name
      - name: hostname
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Associated hostname
          title: Hostname
        description: Associated hostname
      - name: origin
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Origin
      - required: false
        description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
        example: 123e4567-e89b-12d3-a456-426614174000
        schema:
          type: string
        name: X-Correlation-ID
        in: header
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutocompleteResults'
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '401':
          content:
            application/json:
              example:
                request_id: REQUEST123
                detail:
                - type: authentication_error.insufficient_permissions
                  msg: Invalid API key - this API key does not have the required permissions to access this resource
                  loc: []
                - type: authentication_error.invalid_key
                  msg: Invalid API key - this API key either does not exist or is invalid
                  loc: []
                - type: authentication_error.key_missing
                  msg: An API key is required to access this endpoint
                  loc: []
              schema:
                $ref: '#/components/schemas/ErrorBody'
          description: Unauthorized
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '404':
          content:
            application/json:
              example:
                request_id: REQUEST123
                detail:
                - type: event_error.event_not_found
                  msg: The requested event could not be found
                  loc: []
              schema:
                $ref: '#/components/schemas/ErrorBody'
          description: Not Found
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          headers:
            X-Request-ID:
              schema:
                type: string
                format: uuid
              description: Server-generated UUID corresponding to this specific response and its initiating request.
              example: 123e4567-e89b-12d3-a456-426614174000
            X-Correlation-ID:
              schema:
                type: string
                format: uuid
              description: Optional transaction reference provided by the client. Used to correlate API requests and responses with client flow in logs, errors etc.
              example: 123e4567-e89b-12d3-a456-426614174000
components:
  schemas:
    ResultSort:
      type: string
      enum:
      - price_asc
      - price_desc
      - popularity
      title: ResultSort
    Image:
      properties:
        desktop:
          anyOf:
          - type: string
          - type: 'null'
          title: Desktop
          description: URL to use on desktop devices
        mobile:
          anyOf:
          - type: string
          - type: 'null'
          title: Mobile
          description: URL to use on mobile devices
        thumbnail:
          anyOf:
          - type: string
          - type: 'null'
          title: Thumbnail
          description: URL of a square version of this image
      type: object
      title: Image
    ErrorBody:
      properties:
        request_id:
          type: string
          title: Request Id
        detail:
          items:
            $ref: '#/components/schemas/Error'
          type: array
          title: Detail
        body:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Body
      type: object
      required:
      - request_id
      - detail
      title: ErrorBody
    SearchResults:
      properties:
        results:
          items:
            $ref: '#/components/schemas/LiteEvent'
          type: array
          title: Results
          description: Event results (lightweight on event information for smaller response size).
        total_count:
          type: integer
          title: Total Count
          description: Total number of events found.
          examples:
          - 10
        category_count:
          additionalProperties:
            type: integer
          type: object
          title: Category Count
          description: Category count for this search result
          examples:
          - Attractions: 1
            Tours: 2
        city_count:
          additionalProperties:
            type: integer
          type: object
          title: City Count
          description: City count for this search result set
          examples:
          - London: 1
            Paris: 2
        country_count:
          additionalProperties:
            type: integer
          type: object
          title: Country Count
          description: Country code count for this search result set
          examples:
          - FR: 2
            GB: 1
      type: object
      required:
      - results
      - total_count
      - category_count
      - city_count
      - country_count
      title: SearchResults
    LiteEvent:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable/marketing name for this event.
          examples:
          - The Event
        slug:
          type: string
          title: Slug
          description: SEO slug constructed from the event id
          examples:
          - matilda-the-musical-T500
        short_description:
          type: string
          title: Short Description
          description: Short summary of the event.
          examples:
          - Coming to an emergency broadcasting system near you!
        event_type:
          $ref: '#/components/schemas/EventType'
          description: 'Type of event. (Note: standard currently refers to all non-cinema events.)'
          default: Standard
        categories:
          items:
            anyOf:
            - type: string
            - type: 'null'
          type: array
          title: Categories
          description: Categories attributed to the event
          default: []
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
          description: Name of the city in which the event takes place.
          examples:
          - Bristol
        region:
          anyOf:
          - type: string
          - type: 'null'
          title: Region
          description: Name of the region in which the event takes place.
          examples:
          - Derbyshire
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
          description: Name of the state in which the event takes place, if applicable.
          examples:
          - Virginia
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
          description: Name of the country in which the event takes place.
        country_code:
          anyOf:
          - type: string
            pattern: '[A-Z][A-Z]'
          - type: 'null'
          title: Country Code
          description: ISO 3166-1 alpha-2 code for the country in which the event takes place.
          examples:
          - GB
        venue_location:
          items:
            $ref: '#/components/schemas/APIEventVenue'
          type: array
          title: Venue Location
          description: List of locations where this event occurs.
          default: []
        images:
          items:
            $ref: '#/components/schemas/Image'
          type: array
          title: Images
          description: URLs of images which represent this event.
          default: []
          examples:
          - - desktop: https://placekitten.com/g/1000/1000
              mobile: https://placekitten.com/g/1000/1000
            - desktop: https://place-puppy.com/1000x1000
              thumbnail: https://place-puppy.com/1000x1000
        videos:
          items:
            type: string
          type: array
          title: Videos
          description: Links to videos that represent this event, such as trailers.
          default: []
        from_price:
          $ref: '#/components/schemas/Price'
          description: Price of the cheapest ticket associated with this event.
          examples:
          - amount: 3.99
            currency: GBP
        popularity:
          anyOf:
          - type: number
            maximum: 10.0
            minimum: 1.0
          - type: 'null'
          title: Popularity
          description: Event's popularity with end users, out of 10.
          examples:
          - 8.5
        is_tbd:
          $ref: '#/components/schemas/IsTbd'
          description: Whether the event date and/or time are to be determined.
          default:
            time: false
            date: false
        soft_availability_t1:
          type: string
          format: date-time
          title: Soft Availability T1
          description: Beginning of the period for which this event is available to book
        soft_availability_t2:
          type: string
          format: date-time
          title: Soft Availability T2
          description: End of the period for which this event is available to book
        event_id:
          type: string
          title: Event Id
          description: Unique identifier for this event.
          examples:
          - T123
      type: object
      required:
      - title
      - slug
      - short_description
      - from_price
      - soft_availability_t1
      - soft_availability_t2
      - event_id
      title: LiteEvent
    AutocompleteResults:
      properties:
        event_count:
          type: integer
          title: Event Count
          description: Total number of events found.
          default: 0
          examples:
          - 10
        events:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Events
          description: List of events
          default: []
        performers:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Performers
          description: List of performers
          default: []
        venues:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Venues
          description: List of venues
          default: []
        states:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: States
          description: List of states
          default: []
        regions:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Regions
          description: List of regions
          default: []
        categories:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Categories
          description: List of categories
          default: []
        cities:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Cities
          description: List of city names
          default: []
        countries:
          items:
            $ref: '#/components/schemas/AutocompleteField'
          type: array
          title: Countries
          description: List of country names
          default: []
      type: object
      title: AutocompleteResults
    EventType:
      type: string
      enum:
      - Standard
      - Cinema
      title: EventType
      description: 'Event type classification.


        - STANDARD: (Currently) All non-cinema events

        - CINEMA: All cinema experiences'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    Price:
      properties:
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Monetary value of this price in the given currency, with decimal point i.e. not integer format
          examples:
          - '3.99'
        currency:
          type: string
          maxLength: 3
          minLength: 3
          pattern: '[A-Z][A-Z][A-Z]'
          title: Currency
          description: ISO 4217 code for the currency in which the item's prices are sent
          examples:
          - GBP
      type: object
      required:
      - amount
      - currency
      title: Price
      description: Represents an absolute monetary value in a particular currency. Cannot be negative.
    APIEventVenue:
      properties:
        latitude:
          type: number
          title: Latitude
          description: Latitude in degrees
          examples:
          - 1.23456789
        longitude:
          type: number
          title: Longitude
          description: Longitude in degrees
          examples:
          - 1.23456789
        id:
          type: string
          title: Id
          description: Machine identifier for this place
          default: ''
          examples:
          - '123'
        venue_brand_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Venue Brand Id
          description: The brand ID that operates the venue
        venue_address:
          type: string
          title: Venue Address
          description: Street address of the venue
          examples:
          - 27 Stadium Avenue
        seatplan_ima

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