> ## 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.

# Get OAuth access token



## OpenAPI

````yaml /openapi/agent-reseller-api.mintlify.json post /apiv1/token
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/token:
    post:
      tags:
        - Authentication
      summary: Get OAuth access token
      operationId: post_tdms_api_v1_gettoken
      requestBody:
        required: true
        content:
          application/json:
            schema:
              required:
                - client_id
                - client_secret
              properties:
                client_id:
                  description: Your assigned client ID
                  type: string
                client_secret:
                  description: Your assigned client secret
                  type: string
              type: object
          application/x-www-form-urlencoded:
            schema:
              required:
                - client_id
                - client_secret
              properties:
                client_id:
                  description: Your assigned client ID
                  type: string
                client_secret:
                  description: Your assigned client secret
                  type: string
              type: object
      responses:
        '200':
          description: Token successfully generated
          content:
            application/json:
              schema:
                properties:
                  access_token:
                    description: OAuth access token to use in subsequent requests
                    type: string
                  expires_in:
                    description: Token expiration time in seconds
                    type: integer
                  token_type:
                    description: Token type (always "bearer")
                    type: string
                  scope:
                    description: Token scope permissions
                    type: string
                type: object
        '400':
          description: >-
            Bad request - missing Content-Type header, invalid request format,
            or missing required parameters
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                  error_description:
                    type: string
                type: object
        '401':
          description: Unauthorized - invalid client credentials
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                  error_description:
                    type: string
                type: object
        '500':
          description: >-
            Internal server error - missing Content-Type header will return HTTP
            500
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                  error_description:
                    type: string
                type: object

````

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