{
  "openapi": "3.0.1",
  "info": {
    "title": "Traveloka Scraper | Hotels Flights Activities SEA",
    "description": "Scrape Traveloka hotels, flights, activities, car rental, airport transfer & trains across SEA locales. Extract hotel IDs, prices, ratings & detail enrich. Export Excel/CSV/JSON. Unofficial — not affiliated with Traveloka.",
    "version": "0.1",
    "x-build-id": "3WMujDgRnroivoMEh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lentic_clockss~traveloka-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lentic_clockss-traveloka-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/lentic_clockss~traveloka-scraper/runs": {
      "post": {
        "operationId": "runs-sync-lentic_clockss-traveloka-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/lentic_clockss~traveloka-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-lentic_clockss-traveloka-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "service": {
            "title": "Service",
            "enum": [
              "hotels",
              "flights",
              "activities",
              "car_rental",
              "airport_transfer",
              "trains"
            ],
            "type": "string",
            "description": "What to collect. Hotels come from Traveloka's own hotel search with live prices for your dates; flights from the flight search page; the other services list links from their Traveloka pages.",
            "default": "hotels"
          },
          "destination": {
            "title": "Destination",
            "type": "string",
            "description": "Hotels: a city, region or area as you would type it on Traveloka (Bali, Ubud, Bangkok, Singapore). Flights: destination airport IATA code (e.g. DPS). Hotels default to Bali."
          },
          "geoId": {
            "title": "Hotel geo ID (optional)",
            "type": "string",
            "description": "Traveloka's id of the city/area (e.g. 102746 = Bali). Use it instead of Destination to skip the lookup."
          },
          "hotelListUrl": {
            "title": "Hotel list URL (optional)",
            "pattern": "^(https://(www\\.|m\\.)?traveloka\\.com/.*hotel/.+)?$",
            "type": "string",
            "description": "A Traveloka hotel area/region page, e.g. https://www.traveloka.com/en-id/hotel/indonesia/area/ubud-102771. Lists every hotel of that area page by page. Prices here are Traveloka's \"from\" prices, not prices for your dates."
          },
          "checkin": {
            "title": "Check-in",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Hotels: check-in date, YYYY-MM-DD. Default: 21 days from today."
          },
          "checkout": {
            "title": "Check-out",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Hotels: check-out date, YYYY-MM-DD, after check-in, at most 30 nights. Default: 2 nights."
          },
          "adults": {
            "title": "Adults",
            "minimum": 1,
            "type": "integer",
            "description": "Number of adults.",
            "default": 2
          },
          "children": {
            "title": "Children",
            "minimum": 0,
            "type": "integer",
            "description": "Number of children. With hotels, set Child ages instead (one age per child).",
            "default": 0
          },
          "childAges": {
            "title": "Child ages (hotels)",
            "type": "array",
            "description": "One age (0-17) per child, e.g. [7, 10]."
          },
          "rooms": {
            "title": "Rooms",
            "minimum": 1,
            "type": "integer",
            "description": "Number of hotel rooms.",
            "default": 1
          },
          "enrichDetails": {
            "title": "Hotel details and rooms",
            "type": "boolean",
            "description": "Hotels: add address, postal code, check-in/out times, facilities, policies and description, then emit each bookable room offer as its own row (first 100 hotels across the run). Slower: about 5-10 s per hotel.",
            "default": false
          },
          "includeReviews": {
            "title": "Hotel reviews",
            "type": "boolean",
            "description": "Hotels: emit the most recent guest reviews as separate rows (up to Max reviews per hotel).",
            "default": false
          },
          "maxReviews": {
            "title": "Max reviews per hotel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Hotels with Hotel reviews on: how many recent review rows to collect per hotel (1-20).",
            "default": 20
          },
          "origin": {
            "title": "Origin IATA",
            "type": "string",
            "description": "Flights: origin airport IATA code. Default CGK (Jakarta)."
          },
          "departureDate": {
            "title": "Departure date",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Flights: departure date, YYYY-MM-DD. Default: 28 days from today."
          },
          "returnDate": {
            "title": "Return date",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Flights (round trip): return date, YYYY-MM-DD. Default: 7 days after departure."
          },
          "tripType": {
            "title": "Trip type",
            "enum": [
              "oneway",
              "roundtrip"
            ],
            "type": "string",
            "description": "oneway or roundtrip for flights.",
            "default": "oneway"
          },
          "cabinClass": {
            "title": "Cabin class",
            "enum": [
              "ECONOMY",
              "PREMIUM_ECONOMY",
              "BUSINESS",
              "FIRST"
            ],
            "type": "string",
            "description": "Flight cabin class.",
            "default": "ECONOMY"
          },
          "infants": {
            "title": "Infants",
            "minimum": 0,
            "type": "integer",
            "description": "Number of infants.",
            "default": 0
          },
          "locale": {
            "title": "Locale",
            "enum": [
              "en-id",
              "id-id",
              "en-my",
              "en-sg",
              "en-ph",
              "en-th",
              "th-th",
              "en-vn",
              "vi-vn",
              "en-au",
              "ja-jp",
              "ko-kr",
              "en-en"
            ],
            "type": "string",
            "description": "Traveloka site language and market (e.g. en-sg = English, Singapore dollars). Sets the default currency.",
            "default": "en-sg"
          },
          "currency": {
            "title": "Currency",
            "type": "string",
            "description": "Optional currency override (e.g. USD). Defaults to the locale's currency."
          },
          "maxResults": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum rows for this destination, geo ID, hotel-list URL, flight route, or other scalar service target. The default is 70; larger values are collected in parts of 70. Hotels, room offers, reviews, flights, and all other row types count together. The run stops at your maximum total charge. Free Apify plan users are limited to 200 rows per run and 10 total runs.",
            "default": 70
          },
          "domain": {
            "title": "Domain",
            "type": "string",
            "description": "Host. Default www.traveloka.com.",
            "default": "www.traveloka.com"
          },
          "proxyCountry": {
            "title": "Proxy country hint",
            "type": "string",
            "description": "Optional ISO country of the worker's residential exit (e.g. SG)."
          },
          "workerBaseUrl": {
            "title": "Worker base URL override",
            "type": "string",
            "description": "Advanced: worker base URL override (allowlisted hosts only)."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}