AGL

AGL OTA API

Distribution-side REST API of TIGER GDS. Version 2.0, OpenAPI 3.1.1, 24 operations across five capability groups: reference code lookups (languages, currencies, continents, countries, regions, cities, airports, facilities, package item codes), golf club catalog and detail, tee-time open dates and open tee times, static golf packages and plan inventory, and the reservation lifecycle (request, confirm, inquiry, partial cancel, cancel, voucher send). Authenticated with an Authorization header token plus a clientId header issued by AGL.

Operations 23

GET /v2/codes/languages Get supported language codes
GET /v2/codes/currencies Get supported currency codes
GET /v2/codes/continents Get continent codes
GET /v2/codes/countries Get country codes by continent
GET /v2/codes/regions Get region codes by country
GET /v2/codes/cities Get city codes by country
GET /v2/codes/airports Get airport codes
GET /v2/codes/facilities Get facilities codes
GET /v2/codes/packageItemCodes get list of possible package item codes such as accommodation, breakfast, transportation, ...
GET /v2/golfClubs Get list of golf clubs
GET /v2/golfClub Get golf club detail
GET /v2/teeTime/openDates Get available tee time dates
GET /v2/teeTime/openTeeTimes Get detailed tee times by golf club and date
GET /v2/staticPackage/packages get list of packages
GET /v2/staticPackage/plans Get package inventories, including stocks, by each options including dates, groupSizes
POST /v2/reservation/request Make a reservation request. Blocks a tee time before it is paid and confirm. Such block will be released after 30 minutes if not confirmed later.
DELETE /v2/reservation/request Cancel a single reservation request.
DELETE /v2/reservation/requests Cancel reservation requests by integrated reservation number.
POST /v2/reservation/confirm Confirm reservation
POST /v2/reservation/partialcancel Cancel a reservation partially
GET /v2/reservation Inquiry reservation details
DELETE /v2/reservation Cancel a reservation.
POST /v2/reservation/sendVoucher Send reservation voucher

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/agl-ota"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agl-ota-openapi-original.yml Raw ↑
openapi: 3.1.1
info:
  title: AGL OTA API
  version: '2.0'
  description: 'AGL OTA API provides RESTful access to golf-related data and operations, including

    code lookup, golf club information, tee time availability, and reservation management.

    update 2 June: added static package

    '
servers:
- url: https://ac-gw-ota.tigergds.com
  description: Action Center Environment
- url: https://gw-ota.tigergds.com
  description: Production Environment
security:
- bearerAuth: []
  clientId: []
components:
  securitySchemes:
    bearerAuth:
      type: apiKey
      name: Authorization
      in: header
    clientId:
      type: apiKey
      in: header
      name: clientId
  parameters:
    LanguageParam:
      name: language
      in: query
      required: true
      schema:
        type: string
        enum:
        - ko
        - en
        - ja
        - es
        - zh
        - tw
    CurrencyParam:
      name: currency
      in: query
      required: true
      schema:
        type: string
        examples:
        - KRW
    TransactionIdParam:
      name: transactionId
      in: query
      required: true
      schema:
        type: string
  schemas:
    CommonResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - ok
          - fail
        data:
          type:
          - object
          - 'null'
          description: Payload of the response
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - FL00
          - FL01
          - ET00
        statusDescription:
          type: string
          examples:
          - One of required parameter is missing.
    MultiLanguageText:
      type: object
      properties:
        en:
          type: string
        ko:
          type: string
        ja:
          type: string
        zh:
          type: string
        tw:
          type: string
        es:
          type: string
    AcceptedGroupSize:
      type: number
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
    AmountType:
      type: string
      enum:
      - teeTimeAmount
      - teeTimeSumAmount
      - staticPackageAmount
      - staticPackageTotalAmount
      - cancellationFee
      - cancellationFeePerc
      description: type of the amount line. Used to identify the type of amount.
    Continent:
      type: object
      properties:
        id:
          type: string
          description: string that identifies a continent
          examples:
          - Asia
        name:
          $ref: '#/components/schemas/MultiLanguageText'
    Country:
      type: object
      properties:
        id:
          type: string
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        continentId:
          type: string
    Region:
      type: object
      properties:
        id:
          type: string
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        countryId:
          type: string
    City:
      type: object
      properties:
        id:
          type: string
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        countryId:
          type: string
    Airport:
      type: object
      properties:
        id:
          type: string
        name:
          $ref: '#/components/schemas/MultiLanguageText'
    GolfClub:
      type: object
      properties:
        id:
          type: string
          examples:
          - NA0123
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        thumbnailImages:
          type: array
          items:
            type: string
          description: list of thumbnail images for the golf course
          examples:
          - - https://tigerbooking.com/....
        acceptedGroupSizes:
          type: array
          description: number of guests that the golf resort would accept for each tee time
          items:
            $ref: '#/components/schemas/AcceptedGroupSize'
          examples:
          - - 2
            - 3
            - 4
        currency:
          type: string
        minPrice:
          type: number
          description: minimum price per tee-time that this club offers
        minPriceDate:
          type: string
          description: date of that minimum price offer, in ISO-format
          examples:
          - '2025-01-01'
        minPriceDateHour:
          type: string
          description: date and hour of that minimum price offer, in ISO-format. Always in local time.
          examples:
          - 2025-01-01 00:00
        timezone:
          type: string
          description: timezone code of the golf club
          examples:
          - Asia/Seoul
        category:
          type: string
          enum:
          - standard
          - package
          examples:
          - standard
        lastUpdateAt:
          type: string
          description: last update datetime of this club information.
          examples:
          - '2025-01-01 00:00:00'
    GolfClubDetail:
      type: object
      allOf:
      - $ref: '#/components/schemas/GolfClub'
      - type: object
        properties:
          informationId:
            type: number
            description: id of the golf club information associated with this golf club
            examples:
            - 1234
          information:
            $ref: '#/components/schemas/GolfClubInformation'
          informationDetails:
            $ref: '#/components/schemas/GolfClubInformationDetail'
    GolfClubInformation:
      type: object
      properties:
        heading:
          $ref: '#/components/schemas/MultiLanguageText'
        includedItems:
          $ref: '#/components/schemas/MultiLanguageText'
        excludedItems:
          $ref: '#/components/schemas/MultiLanguageText'
        cancellationPolicy:
          $ref: '#/components/schemas/MultiLanguageText'
        important:
          $ref: '#/components/schemas/MultiLanguageText'
        extraNote:
          $ref: '#/components/schemas/MultiLanguageText'
    GolfClubInformationDetail:
      type: object
      properties:
        checkpoints:
          $ref: '#/components/schemas/MultiLanguageText'
        cntHoles:
          type: number
        par:
          type: number
        courseLength:
          type: number
        courseLengthUnit:
          type: string
          enum:
          - yard
          - meter
        telephone:
          type: string
        address:
          $ref: '#/components/schemas/MultiLanguageText'
        homepageURL:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        googlePlaceId:
          type: string
        courses:
          type: array
          items:
            $ref: '#/components/schemas/GolfCourse'
        facilities:
          type: array
          items:
            $ref: '#/components/schemas/GolfClubFacility'
    GolfClubFacility:
      type: object
      properties:
        id:
          type: string
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        exists:
          type: boolean
    GolfCourse:
      type: object
      properties:
        id:
          type: integer
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        types:
          type: array
          items:
            $ref: '#/components/schemas/CourseType'
    CourseType:
      type: object
      properties:
        id:
          type: string
        detail:
          type: array
          items:
            $ref: '#/components/schemas/CourseTypeDetail'
    CourseTypeDetail:
      type: object
      properties:
        holeName:
          type: string
        par:
          type: number
        handicap:
          type: number
        red:
          type: number
        yellow:
          type: number
        white:
          type: number
        blue:
          type: number
        black:
          type: number
    StaticPackage:
      type: object
      properties:
        id:
          type: string
          examples:
          - (id of the package)
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        hotelNights:
          type: number
          examples:
          - 2
        packageNights:
          type: number
          examples:
          - 3
        thumbnailImages:
          type: array
          items:
            type: string
          description: list of thumbnail images for the golf course
          examples:
          - - https://tigerbooking.com/....
        suggestedPlanItineraries:
          $ref: '#/components/schemas/MultiLanguageText'
        important:
          $ref: '#/components/schemas/MultiLanguageText'
        caution:
          $ref: '#/components/schemas/MultiLanguageText'
        etiquette:
          $ref: '#/components/schemas/MultiLanguageText'
        golfClubs:
          type: array
          items:
            $ref: '#/components/schemas/GolfClubDetail'
        includes:
          type: array
          items:
            type: object
            properties:
              packageItemType:
                type: string
                enum:
                - accommodation
                - transportation
                - caddy
                - cart
                - '...'
              packageItemIncluded:
                type: string
                examples:
                - included, excluded, ...
        includedItemsText:
          type: string
          description: html, containing information of the items included in this package
        disclaimerText:
          type: string
          description: html, containing terms and other conditions of this package item.
    StaticPackagePlan:
      type: object
      properties:
        id:
          type: string
        packageId:
          type: string
        thumbnailImages:
          type: array
          items:
            type: string
          description: list of thumbnail images for the golf course
          examples:
          - - https://tigerbooking.com/....
        hashtags:
          type: array
          items:
            $ref: '#/components/schemas/MultiLanguageText'
        summaryDescription:
          $ref: '#/components/schemas/MultiLanguageText'
        golfClubs:
          type: array
          items:
            $ref: '#/components/schemas/GolfClubDetail'
        planOption:
          type: object
          properties:
            startDate:
              type: string
              description: ISO-format date of starting date of this package
              examples:
              - '2025-05-15'
            startHour:
              type: string
              description: hh:mm format hour of starting hour of this package
              examples:
              - '12:00'
            endDate:
              type: string
              description: ISO-format date of starting date of this package
              examples:
              - '2025-05-15'
            endHour:
              type: string
              description: hh:mm format hour of starting hour of this package
              examples:
              - '12:00'
            mustArrivalTime:
              type: string
              description: The minimum required arrival time (hh:mm) for this package
              examples:
              - 08:30
            mustDepartureTime:
              type: string
              description: The minimum required departure time (hh:mm) for this package
              examples:
              - '20:10'
            acceptedGroupSizes:
              type: array
              description: number of guests that the package would accept
              items:
                $ref: '#/components/schemas/AcceptedGroupSize'
              examples:
              - - 2
                - 3
                - 4
            canBeJoining:
              type: boolean
              description: True, if this plan can be used to joined with other players. False if full on their own. Usually
                False, if groupSize=4
            includes:
              type: array
              items:
                type: object
                properties:
                  packageItemType:
                    type: string
                    enum:
                    - accommodation
                    - transportation
                    - caddy
                    - cart
                    - '...'
                  packageItemIncluded:
                    type: string
        planAdditionalInfo:
          type: object
          properties:
            recommendedFlights:
              type: array
              items:
                $ref: '#/components/schemas/RecommendedFlight'
            meetingPointAirportCode:
              type: string
            meetingPointDescription:
              type: string
            dropOffAirportCode:
              type: string
            dropOffDescription:
              type: string
            accommodationInfos:
              type: array
              items:
                $ref: '#/components/schemas/AccommodationInfo'
            reservedForText1:
              type: string
            reservedForText2:
              type: string
        availability:
          type: number
          description: number of open slots for this plan, under this packageInfo. This is by slots, not counted by number
            of travelers. (If acceptedGroupSize=4, it means 2*4 = 8 travelers can enjoy this package.)
          examples:
          - 2
        retailPrices:
          type: array
          items:
            type: object
            properties:
              groupSize:
                type: number
              amount:
                $ref: '#/components/schemas/Amount'
        supplyPrices:
          type: array
          items:
            type: object
            properties:
              groupSize:
                type: number
              amount:
                $ref: '#/components/schemas/Amount'
        cancellationPolicy:
          $ref: '#/components/schemas/CancellationPolicy'
    AccommodationInfo:
      type: object
      properties:
        type:
          type: string
          examples:
          - hotel
        hotel:
          type: object
          properties:
            name:
              $ref: '#/components/schemas/MultiLanguageText'
            description:
              $ref: '#/components/schemas/MultiLanguageText'
            images:
              type: array
              items:
                type: object
                properties:
                  url:
                    type: string
                  imageType:
                    type: string
                    enum:
                    - main
                    - small
    Reservation:
      type: object
      properties:
        reservationNumber:
          type: string
        reference:
          type: string
        payment:
          $ref: '#/components/schemas/Payment'
        charge:
          $ref: '#/components/schemas/Payment'
        reservations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              reference:
                type: string
              reservationNumber:
                type: string
              status:
                type: string
                enum:
                - REQUESTED
                - ACTIVE
                - USED
                - CANCELLED
              reservationType:
                type: string
                enum:
                - TEE_TIME
                - PACKAGE
                - STATIC_PACKAGE
              golfClubIds:
                type: array
                items:
                  type: object
                  properties:
                    golfClubId:
                      type: string
                    courseId:
                      type: string
              teeTime:
                allOf:
                - $ref: '#/components/schemas/TeeTime'
                - $ref: '#/components/schemas/TeeBooker'
                - $ref: '#/components/schemas/FlightInfo'
                - $ref: '#/components/schemas/TeeGolfers'
              staticPackage:
                allOf:
                - type: object
                  properties:
                    id:
                      type: string
                      description: id of the static package associated with this reservation. Required for static package
                        reservations.
                    planId:
                      type: string
                      description: id of the static package plan associated with this reservation. Required for static package
                        reservations.
                - $ref: '#/components/schemas/TeeBooker'
                - $ref: '#/components/schemas/FlightInfo'
                - $ref: '#/components/schemas/TeeGolfers'
              cancellationPolicy:
                $ref: '#/components/schemas/CancellationPolicy'
    ReservationRequest:
      type: object
      required:
      - reservationType
      properties:
        reference:
          type: string
          description: Reference number for the check reservation, such as ota booking reference number.
        reservationType:
          type: string
          enum:
          - TEE_TIME
          - PACKAGE
          - STATIC_PACKAGE
          description: Type of the reservation. TEE_TIME for tee time reservation, PACKAGE for package reservation, and STATIC_PACKAGE
            for static package reservation.
        teeTime:
          description: Tee time reservation information. Required for tee time reservations when reservationType is TEE_TIME.
          allOf:
          - type: object
            properties:
              id:
                type: string
                description: id of the tee time associated with this reservation. Required for tee time reservations when
                  reservationType is TEE_TIME.
            required:
            - id
          - $ref: '#/components/schemas/TeeBookerRequest'
          - $ref: '#/components/schemas/FlightInfo'
          - $ref: '#/components/schemas/TeeGolfersRequest'
        staticPackage:
          allOf:
          - type: object
            required:
            - id
            - planId
            properties:
              id:
                type: string
                description: id of the static package associated with this reservation. Required for static package reservations
                  when reservationType is STATIC_PACKAGE.
              planId:
                type: string
                description: id of the static package plan associated with this reservation. Required for static package reservations
                  when reservationType is STATIC_PACKAGE.
          - $ref: '#/components/schemas/TeeBookerRequest'
          - $ref: '#/components/schemas/FlightInfo'
          - $ref: '#/components/schemas/TeeGolfersRequest'
          description: Static package reservation information. Required for static package reservations when reservationType
            is STATIC_PACKAGE.
    Amount:
      type: object
      properties:
        reservationId:
          type: string
          description: id of the reservation that this amount is associated with. Required for tee time reservations.
        currency:
          type: string
          examples:
          - USD
        amountType:
          $ref: '#/components/schemas/AmountType'
          examples:
          - teeTimeAmount or teeTimeSumAmount or staticPackageAmount or staticPackageTotalAmount
        amount:
          type: number
          format: decimal
          examples:
          - 156
        amountCents:
          type: number
          description: 100x of the amount, to represent cents properly
          examples:
          - 15600
        status:
          enum:
          - CHARGED
          - VOIDED
          nullable: true
    TeetimeAmount:
      type: object
      properties:
        currency:
          type: string
          examples:
          - USD
        amountType:
          $ref: '#/components/schemas/AmountType'
          examples:
          - teeTimeAmount or teeTimeSumAmount or staticPackageAmount or staticPackageTotalAmount
        amount:
          type: number
          format: decimal
          examples:
          - 156
        amountCents:
          type: number
          description: 100x of the amount, to represent cents properly
          examples:
          - 15600
    AmountRequest:
      type: object
      required:
      - currency
      - amountType
      - amount
      - amountCents
      - status
      properties:
        reservationId:
          type: string
          description: id of the reservation that this amount is associated with. Required for static package reservations.
        currency:
          type: string
        amountType:
          $ref: '#/components/schemas/AmountType'
          examples:
          - teeTimeAmount or teeTimeSumAmount or staticPackageAmount or staticPackageTotalAmount
        amount:
          type: number
          format: decimal
          examples:
          - 156
        amountCents:
          type: number
          description: 100x of the amount, to represent cents properly
          examples:
          - 15600
        status:
          enum:
          - CHARGED
          - VOIDED
    Payment:
      type: object
      properties:
        id:
          type: string
        currency:
          type: string
        totalAmount:
          type: number
          format: decimal
          examples:
          - 156
        amountLines:
          type: array
          items:
            $ref: '#/components/schemas/Amount'
        mobile:
          type: string
        email:
          type: string
        paymentMethod:
          type: string
          enum:
          - CARD_STRIPE
          - CARD_EXIMPAY
          - CARD
          - CASH
          - AFT
          description: 'AFT : postpaid'
    PaymentRequest:
      type: object
      required:
      - currency
      - totalAmount
      - amountLines
      - email
      - paymentMethod
      properties:
        currency:
          type: string
        totalAmount:
          type: number
          format: decimal
          examples:
          - 156
        amountLines:
          type: array
          items:
            $ref: '#/components/schemas/AmountRequest'
        mobile:
          type: string
        email:
          type: string
        paymentMethod:
          type: string
          enum:
          - CARD_STRIPE
          - CARD_EXIMPAY
          - CARD
          - CASH
          - AFT
          description: 'AFT : postpaid'
    ConfirmRequest:
      type: object
      required:
      - currency
      - totalAmount
      - amountLines
      - email
      - paymentMethod
      properties:
        currency:
          type: string
        totalAmount:
          type: number
          format: decimal
          examples:
          - 156
        amountLines:
          type: array
          items:
            $ref: '#/components/schemas/AmountRequest'
        mobile:
          type: string
        email:
          type: string
        paymentMethod:
          type: string
          enum:
          - CARD_STRIPE
          - CARD_EXIMPAY
          - CARD
          - CASH
          - AFT
          description: 'AFT : postpaid'
    CancellationPolicy:
      type: object
      properties:
        currency:
          type: string
        policies:
          type: array
          items:
            type: object
            properties:
              amountType:
                $ref: '#/components/schemas/AmountType'
                examples:
                - cancellationFee or cancellationFeePerc
              amount:
                type: number
                format: decimal
                description: Percentage of the cancellation fee or cancellation fee applied after a specific date and time
                examples:
                - 50
              appliesUntil:
                type: string
                description: ISO format UTC date time that this cancellation policy applies
                examples:
                - 2025-02-22 11:00
          examples:
          - - amountType: cancellationFeePerc
              amount: 50
              appliesUntil: 2025-02-22 11:00
            - amountType: cancellationFeePerc
              amount: 100
              appliesUntil: 2025-02-30 11:00
    Course:
      type: object
      properties:
        id:
          type: string
          examples:
          - d229f6afc72e4533ba55a4ee89b0355a
        name:
          $ref: '#/components/schemas/MultiLanguageText'
        teeTimes:
          type: array
          items:
            $ref: '#/components/schemas/TeeTimeWithAmount'
    TeeBooker:
      type: object
      properties:
        booker:
          type: object
          properties:
            nationality:
              type: string
            firstName:
              type: string
            lastName:
              type: string
            phone:
              type: string
            email:
              type: string
            countGolfers:
              $ref: '#/components/schemas/AcceptedGroupSize'
    TeeBookerRequest:
      required:
      - booker
      type: object
      properties:
        booker:
          type: object
          required:
          - firstName
          - lastName
          - phone
          - email
          - countGolfers
          properties:
            nationality:
              type: string
            firstName:
              type: string
            lastName:
              type: string
            phone:
              type: string
            email:
              type: string
            countGolfers:
              $ref: '#/components/schemas/AcceptedGroupSize'
    FlightInfo:
      type: object
      properties:
        flight:
          type: object
          properties:
            inboundFlightNumber:
              type: string
              description: flight number of the inboound flight
              examples:
              - KE001
            inboundDepartureDate:
              type: string
              description: ISO format date of the departure date of the inbound flight
              examples:
              - '2025-01-01'
            inboundDepartureTime:
              type: string
              description: ISO format time of the departure time of the inbound flight
              examples:
              - 08:00
            inboundDepartureAirportCode:
              type: string
              description: airport code of the inbound flight departure airport
              examples:
              - ICN
            inboundArrivalDate:
              type: string
              description: ISO format date of the arrival date of the inbound flight
              examples:
              - '2025-01-01'
            inboundArrivalTime:
              type: string
              description: ISO format time of the arrival time of the inbound flight
              examples:
              - '13:00'
            inboundArrivalAirportCode:
              type: string
              description: airport code of the inbound flight arrival airport
              examples:
              - PUS
            outboundFlightNumber:
              type: string
              description: flight number of the outbound flight
              examples:
              - KE002
            outboundDepartureDate:
              type: string
              description: ISO format date of the departure date of the outbound flight
              examples:
              - '2025-01-03'
            outboundDepartureTime:
              type: string
              description: ISO format time of the departure time of the outbound flight
              examples:
              - '21:00'
            outboundDepartureAirportCode:
              type: string
              description: airport code of the outbound flight departure airport
              examples:
              - PUS
            outboundArrivalDate:
              type: string
              description: ISO format date of the arrival date of the outbound flight
              examples:
              - '2025-01-01'
            outboundArrivalTime:
              type: string
              description: ISO format time of the arrival time of the outbound flight
              examples:
              - '24:00'
            outboundArrivalAirportCode:
              type: string
              description: airport code of the outbound flight arrival airport
              examples:
              - ICN
            memo:
              type: string
              description: memo for the flight
    RecommendedFlight:
      type: object
      properties:
        inboundFlightNumber:
          type: string
          description: flight number of the inboound flight
          examples:
          - KE001
        inboundFlightTime:
          type: string
          description: ISO format time of the inbound flight
          examples:
          - 08:00
        inboundDepartureAirportCode:
          type: string
          description: airport code of the inbound flight departure airport
          examples:
          - ICN
        inboundArrivalAirportCode:
          type: string
          description: airport code of the inbound flight arrival airport
          examples:
          - PUS
        outboundFlightNumber:
          type: string
          description: flight number of the outbound flight
          examples:
          - KE002
        outboundFlightTime:
          type: string
          description: ISO format time of the outbound flight
          examples:
          - '22:00'
        outboundDepartureAirportCode:
          type: string
          description: airport code of the outbound flight departure airport
          examples:
          - PUS
        outboundArrivalAirportCode:
          type: string
          description: airport code of the outbound flight arrival airport
          examples:
          - ICN
    TeeGolfers:
      type: object
      properties:
        golfers:
          type: array
          description: list of golfers that are playing in this tee time.
          minItems: 1
          maxItems: 4
          items:
            type: object
            properties:
              firstName:
                type: string
                description: first name of the golfer
                examples:
                - John
              lastName:
                type: string
                description: last name of the golfer
                examples:
                - Doe
              gender:
                type: string
                enum:
                - M
                - F
    TeeGolfersRequest:
      type: object
      required:
      - golfers
      properties:
        golfers:
          type: array
          description: list of golfers that are playing in this tee time.
          minItems: 1
          maxItems: 4
          items:
            type: object
            required:
            - firstName
            - lastName
            properties:
              firstName:
                type: string
                description: first name of the golfer
                examples:
                - John
              lastName:
                type: string
                description: last name of the golfer
                examples:
                - Doe
              gender:
                type: string
                enum:
                - M
                - F
    TeeTime:
      type: object
      properties:
        id:
          type: string
          description: id of the teeTime.
        teeDate:
          type: string
          description: ISO format date of this teetime's date
          examples:
          - '2025-01-01'
        teeTimeAt:
          type: string
          description: ISO format time of this teetime's time
          examples:
          - 08:00
        teeTimeAtObject:
          type: object
          properties:
            year:
              type: number
              examples:
              - 2025
            month:
              type: number
              examples:
              - 1
            date:
              type: number
              examples:
              - 1
            hour:
              type: number
              examples:
              - 8
            minute:
              type: number
              examples:
              - 0
    TeeTimeWithAmount:
      type: object
      allOf:
      - $ref: '#/components/schemas/Te

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agl/refs/heads/main/openapi/agl-ota-openapi-original.yml