openapi: 3.0.1
info:
  title: AllSportDB API
  description: Get API access to information on AllSportDB.com web site. Data can be requested using REST API calls and will be returned in JSON format.
  termsOfService: https://allsportdb.com/Home/Terms
  contact:
    name: API Support
    url: https://allsportdb.com/Home/API
    email: api@allsportdb.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 3.0.0
servers:
  - url: https://api.allsportdb.com/v3
paths:
  /calendar:
    get:
      tags:
        - Calendar
      summary: Get list of events
      description: 'Get list of events. If week or dateFrom and dateTo not provided then today''s date will be used. To query data by parameters other than week - use large date range (for example, dateFrom = ''2010-01-01'' and dateTo = ''2030-01-01'').'
      operationId: GetCalendar
      parameters:
        - name: week
          in: query
          description: 'pass an optional week index parameter (for example, -1 = last week, 0 = this week, 1 = next week, n = n-th week; dateFrom and dateTo period used by default)'
          schema:
            type: integer
            format: int32
        - name: dateFrom
          in: query
          description: pass an optional period start date (today's date used by default)
          schema:
            type: string
        - name: dateTo
          in: query
          description: pass an optional period end date (today's date used by default)
          schema:
            type: string
        - name: dateToday
          in: query
          description: 'pass an optional today''s date to account for different time zones (can only have value of yesterday, today or tomorrow)'
          schema:
            type: string
        - name: year
          in: query
          description: pass an optional year parameter
          schema:
            type: integer
            format: int32
        - name: eventId
          in: query
          description: pass an optional event Id parameter
          schema:
            type: integer
            format: int32
        - name: event
          in: query
          description: pass an optional event Name parameter
          schema:
            type: string
        - name: locationId
          in: query
          description: pass an optional location Id parameter
          schema:
            type: integer
            format: int32
        - name: location
          in: query
          description: pass an optional location Name parameter
          schema:
            type: string
        - name: competitionId
          in: query
          description: pass an optional competition Id parameter
          schema:
            type: integer
            format: int32
        - name: competition
          in: query
          description: pass an optional competition Name parameter
          schema:
            type: string
        - name: sportId
          in: query
          description: pass an optional sport Id parameter
          schema:
            type: integer
            format: int32
        - name: sport
          in: query
          description: pass an optional sport Name parameter
          schema:
            type: string
        - name: countryId
          in: query
          description: pass an optional country Id parameter
          schema:
            type: integer
            format: int32
        - name: country
          in: query
          description: pass an optional country Name parameter
          schema:
            type: string
        - name: regionId
          in: query
          description: pass an optional region Id parameter
          schema:
            type: integer
            format: int32
        - name: region
          in: query
          description: pass an optional region Name parameter
          schema:
            type: string
        - name: continentId
          in: query
          description: pass an optional competition continent Id parameter
          schema:
            type: integer
            format: int32
        - name: continent
          in: query
          description: pass an optional competition continent Name parameter
          schema:
            type: string
        - name: locationContinentId
          in: query
          description: pass an optional location continent Id parameter
          schema:
            type: integer
            format: int32
        - name: locationContinent
          in: query
          description: pass an optional location continent Name parameter
          schema:
            type: string
        - name: liveUrlExists
          in: query
          description: 'pass an optional parameter to filter events with liveUrl value set (0 = false, 1 = true)'
          schema:
            type: integer
            format: int32
        - name: filter
          in: query
          description: pass an optional search filter parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/eventResponse'
              examples:
                sample:
                  value: '[{"id":8991,"name":"2021 Tennis Grand Slam - Wimbledon","year":2021,"date":"28 June - 11 July 2021","dateFrom":"2021-06-28T00:00:00","dateTo":"2021-07-11T00:00:00","sportId":17,"sport":"Tennis","emoji":"🎾","competitionId":316,"competition":"Tennis Grand Slam","continentId":2,"continent":"World","url":"https://allsportdb.com/Events/2021-Tennis-Grand-Slam-Wimbledon-8991","webUrl":"https://www.wimbledon.com","wikiUrl":"https://en.wikipedia.org/wiki/The_Championships_Wimbledon","ticketsUrl":"https://www.wimbledon.com/en_GB/tickets/index.html","facebookUrl":"https://www.facebook.com/wimbledon","twitterUrl":"https://twitter.com/search?q=%23GrandSlam%20OR%20%40Wimbledon%20OR%20%23Wimbledon2021","liveUrl":"https://www.wimbledon.com","liveUrlPaid":false,"logoUrl":"https://storage.googleapis.com/allsportdb-logo-storage/orig/event/85be32cd-dbe3-499f-9e3a-f23f90dc0edf","logoThumbnailUrl":"https://storage.googleapis.com/allsportdb-logo-storage/thumb/event/85be32cd-dbe3-499f-9e3a-f23f90dc0edf","logoSmallUrl":"https://storage.googleapis.com/allsportdb-logo-storage/large/event/85be32cd-dbe3-499f-9e3a-f23f90dc0edf","dateModified":"2020-05-09T13:32:36.997","location":[{"id":34,"regionId":null,"name":"United Kingdom","continent":"Europe","continentId":3,"code":"gb","emoji":"🇬🇧","flagUrl":"https://storage.googleapis.com/allsportdb-logo-storage/flags/flag-gb.png","locations":[{"id":3423,"name":"London","lat":51.51,"lng":-0.13}]}]}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /competitions:
    get:
      tags:
        - Competitions
      summary: Get list of competitions
      description: Get list of competitions. If no parameters provided then empty list will be returned.
      operationId: GetCompetitions
      parameters:
        - name: id
          in: query
          description: pass an optional competition Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional competition Name parameter
          schema:
            type: string
        - name: sportId
          in: query
          description: pass an optional sport Id parameter
          schema:
            type: integer
            format: int32
        - name: sport
          in: query
          description: pass an optional sport Name parameter
          schema:
            type: string
        - name: continentId
          in: query
          description: pass an optional continent Id parameter
          schema:
            type: integer
            format: int32
        - name: continent
          in: query
          description: pass an optional continent Name parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/competitionResponse'
              examples:
                sample:
                  value: '[{"id":43,"name":"UEFA Champions League","ageGroup":"Senior","gender":"Men","emoji":"⚽","continentId":3,"continent":"Europe","sportId":1,"sport":"Football","url":"https://allsportdb.com/Competitions/UEFA-Champions-League-43","logoUrl":"https://storage.googleapis.com/allsportdb-logo-storage/orig/comp/fdc8814f-1ea5-443c-9e49-93509556a448","logoSmallUrl":"https://storage.googleapis.com/allsportdb-logo-storage/large/comp/fdc8814f-1ea5-443c-9e49-93509556a448","logoThumbnailUrl":"https://storage.googleapis.com/allsportdb-logo-storage/thumb/comp/fdc8814f-1ea5-443c-9e49-93509556a448","dateModified":"2020-04-27T17:12:24.12"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /continents:
    get:
      tags:
        - Continents
      summary: Get list of continents
      description: Get list of continents. If no parameters provided then all continents will be returned.
      operationId: GetContinents
      parameters:
        - name: id
          in: query
          description: pass an optional continent Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional continent Name parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/continentResponse'
              examples:
                sample:
                  value: '[{"id":3,"name":"Europe"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /countries:
    get:
      tags:
        - Countries
      summary: Get list of countries
      description: Get list of countries. If no parameters provided then all countries will be returned.
      operationId: GetCountries
      parameters:
        - name: id
          in: query
          description: pass an optional country Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional country Name parameter
          schema:
            type: string
        - name: continentId
          in: query
          description: pass an optional continent Id parameter
          schema:
            type: integer
            format: int32
        - name: continent
          in: query
          description: pass an optional continent Name parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/countryResponse'
              examples:
                sample:
                  value: '[{"id":10,"name":"France","code":"fr","emoji":"🇫🇷","continentId":3,"continent":"Europe","url":"https://allsportdb.com/Countries/France","flagUrl":"https://storage.googleapis.com/allsportdb-logo-storage/flags/flag-fr.png"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /locations:
    get:
      tags:
        - Locations
      summary: Get list of locations
      description: Get list of locations. If no parameters provided then empty list will be returned.
      operationId: GetLocations
      parameters:
        - name: id
          in: query
          description: pass an optional location Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional location Name parameter
          schema:
            type: string
        - name: countryId
          in: query
          description: pass an optional country Id parameter
          schema:
            type: integer
            format: int32
        - name: country
          in: query
          description: pass an optional country Name parameter
          schema:
            type: string
        - name: regionId
          in: query
          description: pass an optional region Id parameter
          schema:
            type: integer
            format: int32
        - name: region
          in: query
          description: pass an optional region Name parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/locationResponse'
              examples:
                sample:
                  value: '[{"id":1,"name":"London","url":"https://allsportdb.com/Locations/London-3423","lat":51.51,"lng":-0.13,"dateModified":"2020-04-27T17:12:41.557","countryId":34,"country":"United Kingdom","countryCode":"gb","countryEmoji":"🇬🇧","countryFlagUrl":"https://storage.googleapis.com/allsportdb-logo-storage/flags/flag-gb.png","regionId":1,"region":"England","regionCode":"eng","regionEmoji":"🏴","regionFlagUrl":"https://storage.googleapis.com/allsportdb-logo-storage/flags/flag-eng.png","continentId":3,"continent":"Europe"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /regions:
    get:
      tags:
        - Regions
      summary: Get list of regions
      description: Get list of regions. If no parameters provided then all regions will be returned.
      operationId: GetRegions
      parameters:
        - name: id
          in: query
          description: pass an optional region Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional region Name parameter
          schema:
            type: string
        - name: countryId
          in: query
          description: pass an optional country Id parameter
          schema:
            type: integer
            format: int32
        - name: country
          in: query
          description: pass an optional country Name parameter
          schema:
            type: string
        - name: continentId
          in: query
          description: pass an optional continent Id parameter
          schema:
            type: integer
            format: int32
        - name: continent
          in: query
          description: pass an optional continent Name parameter
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/regionResponse'
              examples:
                sample:
                  value: '[{"id":1,"name":"England","code":"eng","emoji":"🏴","countryId":34,"country":"United Kingdom","continentId":3,"continent":"Europe","url":"https://allsportdb.com/Regions/England","flagUrl":"https://storage.googleapis.com/allsportdb-logo-storage/flags/flag-eng.png"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
  /sports:
    get:
      tags:
        - Sports
      summary: Get list of sports
      description: Get list of sports. If no parameters provided then all sports will be returned.
      operationId: GetSports
      parameters:
        - name: id
          in: query
          description: pass an optional sport Id parameter
          schema:
            type: integer
            format: int32
        - name: name
          in: query
          description: pass an optional sport Name parameter
          schema:
            type: string
        - name: season
          in: query
          description: 'pass an optional Season parameter (summer, winter, other)'
          schema:
            type: string
        - name: page
          in: query
          description: pass an optional page parameter (default page = 1)
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/sportResponse'
              examples:
                sample:
                  value: '[{"id":1,"name":"Alpine Skiing","season":"Winter","emoji":"⛷","url":"https://allsportdb.com/Sports/Alpine-Skiing"}]'
        '400':
          description: bad input parameter
        '401':
          description: access token is missing or invalid
        '500':
          description: internal server error
      security:
        - bearerAuth: [ ]
components:
  schemas:
    competitionResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        ageGroup:
          type: string
          nullable: true
        gender:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        continent:
          type: string
          nullable: true
        sportId:
          type: integer
          format: int32
          nullable: true
        sport:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        logoUrl:
          type: string
          nullable: true
        logoSmallUrl:
          type: string
          nullable: true
        logoThumbnailUrl:
          type: string
          nullable: true
        dateModified:
          type: string
          format: date-time
          nullable: true
    continentResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
    countryResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        continent:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        flagUrl:
          type: string
          nullable: true
    eventCountryResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        regionId:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        continent:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        code:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        flagUrl:
          type: string
          nullable: true
        locations:
          type: array
          items:
            $ref: '#/components/schemas/eventLocationResponse'
          nullable: true
    eventLocationResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        lat:
          type: number
          format: float
          nullable: true
        lng:
          type: number
          format: float
          nullable: true
    eventResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        year:
          type: integer
          format: int32
          nullable: true
        date:
          type: string
          nullable: true
        dateFrom:
          type: string
          format: date-time
          nullable: true
        dateTo:
          type: string
          format: date-time
          nullable: true
        sportId:
          type: integer
          format: int32
          nullable: true
        sport:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        competitionId:
          type: integer
          format: int32
          nullable: true
        competition:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        continent:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        webUrl:
          type: string
          nullable: true
        wikiUrl:
          type: string
          nullable: true
        ticketsUrl:
          type: string
          nullable: true
        facebookUrl:
          type: string
          nullable: true
        twitterUrl:
          type: string
          nullable: true
        liveUrl:
          type: string
          nullable: true
        liveUrlPaid:
          type: boolean
          nullable: true
        logoUrl:
          type: string
          nullable: true
        logoThumbnailUrl:
          type: string
          nullable: true
        logoSmallUrl:
          type: string
          nullable: true
        dateModified:
          type: string
          format: date-time
          nullable: true
        location:
          type: array
          items:
            $ref: '#/components/schemas/eventCountryResponse'
          nullable: true
    locationResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        lat:
          type: number
          format: float
          nullable: true
        lng:
          type: number
          format: float
          nullable: true
        dateModified:
          type: string
          format: date-time
          nullable: true
        countryId:
          type: integer
          format: int32
          nullable: true
        country:
          type: string
          nullable: true
        countryCode:
          type: string
          nullable: true
        countryEmoji:
          type: string
          nullable: true
        countryFlagUrl:
          type: string
          nullable: true
        regionId:
          type: integer
          format: int32
          nullable: true
        region:
          type: string
          nullable: true
        regionCode:
          type: string
          nullable: true
        regionEmoji:
          type: string
          nullable: true
        regionFlagUrl:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        continent:
          type: string
          nullable: true
    regionResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        code:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        countryId:
          type: integer
          format: int32
          nullable: true
        country:
          type: string
          nullable: true
        continentId:
          type: integer
          format: int32
          nullable: true
        continent:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        flagUrl:
          type: string
          nullable: true
    sportResponse:
      type: object
      properties:
        id:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        season:
          type: string
          nullable: true
        emoji:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT