> ## Documentation Index
> Fetch the complete documentation index at: https://mcp.theoryofevolution.com.au/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Search products



## OpenAPI

````yaml /openapi/agent-reseller-api.mintlify.json get /apiv1/products
openapi: 3.0.0
info:
  title: TravelDesk Agent API
  contact:
    name: API Support
    email: api@websitetravel.com
  version: '1.0'
  description: >-
    TravelDesk Agent (Reseller) API.


    ## Rate limiting


    The quota is applied **per Agent Branch key** — the per-branch client
    id/secret pair — not per account, per host, or per integration. Standard
    branches get **200 calls per minute**; upgraded branches get **900**. That
    budget is shared across everything the branch does: availability refreshes,
    background sweeps, customer-facing pricing, and quote or booking creation.


    Two consequences worth designing around:


    - A background sweep can starve customer-facing traffic for the same branch.
    Give live requests priority over refresh work, and cap the concurrency of
    any bulk job.

    - Cooldowns after a `429` must be keyed per branch. Keying them by host
    throttles every branch at once, because they all share
    `tdms.websitetravel.com`.


    Prefer endpoints that answer for a whole product in one request —
    `/apiv1/checkAvailabilityProduct` over one `/apiv1/checkavailabilityrange`
    call per fareprice — since the saving is measured against this quota.


    ## Dates


    Most endpoints take and return `DD-MON-YYYY` (`29-JUL-2026`).
    `/apiv1/checkAvailabilityProduct` returns ISO `YYYY-MM-DD` keys in `dates`.
    Parse both.


    ## Pricing


    Accommodation is dynamically priced — rates move between individual dates,
    not just between seasons — so never cache one rate per fareprice and reuse
    it across a range. Nett tracks RRP at a fixed commission ratio per
    fareprice, because changing commission requires a new
    `productPricesDetailsId`; that makes nett safe to derive from RRP rather
    than store.
servers:
  - url: https://tdms.websitetravel.com
    description: Production Server
  - url: https://tdmstest03.websitetravel.com
    description: Test Server
  - url: http://tdms.localhost
    description: Development Server
security: []
tags:
  - name: Authentication
  - name: Products
  - name: Availability and Pricing - Booking system based Live Availability
  - name: Availability and Pricing - Siteminder Live Availability
  - name: Availability and Pricing - Cached Availability and Live pricing
  - name: Availability and Pricing - Package Availability
  - name: Availability and Pricing - Check Availability via mail to supplier
  - name: Order Placement
  - name: Post Order Management
  - name: Accommodation
  - name: Reports
paths:
  /apiv1/products:
    get:
      tags:
        - Products
      summary: Search products
      operationId: get_tdms_api_v1_searchproducts
      parameters:
        - name: name
          in: query
          schema:
            type: string
        - name: supplier
          in: query
          schema:
            type: string
        - name: packages
          in: query
          schema:
            type: string
        - name: countries
          in: query
          schema:
            type: string
        - name: states
          in: query
          schema:
            type: string
        - name: regions
          in: query
          schema:
            type: string
        - name: localities
          in: query
          schema:
            type: string
        - name: accommodation
          in: query
          schema:
            type: string
        - name: activities
          in: query
          schema:
            type: string
        - name: transport
          in: query
          schema:
            type: string
        - name: productclass
          in: query
          schema:
            type: string
        - name: minLat
          in: query
          schema:
            type: number
            format: float
        - name: maxLat
          in: query
          schema:
            type: number
            format: float
        - name: minLng
          in: query
          schema:
            type: number
            format: float
        - name: maxLng
          in: query
          schema:
            type: number
            format: float
        - name: travelStart
          in: query
          schema:
            type: string
            format: date
        - name: travelEnd
          in: query
          schema:
            type: string
            format: date
        - name: duration
          in: query
          schema:
            type: integer
        - name: sortBy
          in: query
          schema:
            type: string
            enum:
              - rrp
              - name
              - ranking
        - name: sortDirection
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: records-start
          in: query
          schema:
            type: integer
            minimum: 0
        - name: records-length
          in: query
          schema:
            type: integer
            maximum: 100
            minimum: 1
        - name: shortSearch
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: Product search results
          content:
            application/json:
              schema:
                properties:
                  totalRecords:
                    description: Total number of matching records in database
                    type: string
                  fetchedRecords:
                    description: Number of records returned in this response
                    type: integer
                  totalDisplayRecords:
                    description: Total records that can be displayed
                    type: string
                  results:
                    description: Array of product objects
                    type: array
                    items:
                      description: Product details with fares and categories
                      properties:
                        productId:
                          description: Product ID
                          type: string
                        name:
                          description: Product name
                          type: string
                        productClass:
                          description: >-
                            Product class code (A=Activities, H=Accommodation,
                            T=Transport)
                          type: string
                        rrp:
                          description: Recommended retail price
                          type: string
                        supplierName:
                          description: Supplier/operator name
                          type: string
                        country:
                          description: Country name
                          type: string
                        productImagePath:
                          description: Product image URL
                          type: string
                        productTeaser:
                          description: Short product description
                          type: string
                        categories:
                          description: Product category information
                          type: object
                        faresprices:
                          description: >-
                            Available fares and pricing (empty if
                            shortSearch=true)
                          type: array
                          items:
                            description: Fare and pricing information
                            properties:
                              fareName:
                                description: Name of the fare
                                type: string
                              fareTypeId:
                                description: Fare type identifier
                                type: string
                              currencyCode:
                                description: Currency code (e.g., AUD)
                                type: string
                              rrp:
                                description: Recommended retail price
                                type: number
                              wholesale:
                                description: Wholesale price
                                type: number
                              productPricesDetailsId:
                                description: Unique fare identifier for booking
                                type: integer
                            type: object
                      type: object
                type: object
        '400':
          description: Bad request - invalid search parameters
        '401':
          description: Unauthorized - missing or invalid authentication token
        '403':
          description: Forbidden - user not authorized to access products
        '500':
          description: Internal server error
      security:
        - bearerAuth: []
        - oauth2: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: Bearer token authentication
      bearerFormat: OAuth
      scheme: bearer
    oauth2:
      type: oauth2
      description: OAuth2 authentication using client credentials flow
      flows:
        clientCredentials:
          tokenUrl: /apiv1/token
          scopes: {}

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.