{
  "info": {
    "name": "RateHawk / ETG API (WorldOta APIv3)",
    "description": "B2B hotel and travel booking API operated by Emerging Travel Group (ETG) and exposed to partners as RateHawk. pAPI v3 over HTTPS REST, HTTP Basic auth (key id + key).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "basic",
    "basic": [
      { "key": "username", "value": "{{keyId}}", "type": "string" },
      { "key": "password", "value": "{{key}}", "type": "string" }
    ]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api.worldota.net/api/b2b/v3" },
    { "key": "keyId", "value": "" },
    { "key": "key", "value": "" }
  ],
  "item": [
    {
      "name": "Hotel Search",
      "item": [
        {
          "name": "Search Engine Results Page by region",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/search/serp/region/",
              "host": ["{{baseUrl}}"],
              "path": ["search", "serp", "region", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"checkin\": \"2026-09-01\",\n  \"checkout\": \"2026-09-03\",\n  \"residency\": \"gb\",\n  \"language\": \"en\",\n  \"guests\": [{\"adults\": 2, \"children\": []}],\n  \"region_id\": 965847972,\n  \"currency\": \"EUR\"\n}"
            },
            "description": "Preliminary SERP search for hotels within a region."
          }
        },
        {
          "name": "Search Engine Results Page by hotel IDs",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/search/serp/hotels/",
              "host": ["{{baseUrl}}"],
              "path": ["search", "serp", "hotels", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"checkin\": \"2026-09-01\",\n  \"checkout\": \"2026-09-03\",\n  \"residency\": \"gb\",\n  \"language\": \"en\",\n  \"guests\": [{\"adults\": 2, \"children\": []}],\n  \"ids\": [\"test_hotel\"],\n  \"currency\": \"EUR\"\n}"
            },
            "description": "Preliminary SERP search for specific hotels by identifier."
          }
        },
        {
          "name": "Search Engine Results Page by geo coordinates",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/search/serp/geo/",
              "host": ["{{baseUrl}}"],
              "path": ["search", "serp", "geo", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"checkin\": \"2026-09-01\",\n  \"checkout\": \"2026-09-03\",\n  \"residency\": \"gb\",\n  \"language\": \"en\",\n  \"guests\": [{\"adults\": 2, \"children\": []}],\n  \"latitude\": 51.5074,\n  \"longitude\": -0.1278,\n  \"radius\": 3000,\n  \"currency\": \"EUR\"\n}"
            },
            "description": "Preliminary SERP search for hotels within a radius."
          }
        },
        {
          "name": "Retrieve hotelpage",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/search/hp/",
              "host": ["{{baseUrl}}"],
              "path": ["search", "hp", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"checkin\": \"2026-09-01\",\n  \"checkout\": \"2026-09-03\",\n  \"residency\": \"gb\",\n  \"language\": \"en\",\n  \"guests\": [{\"adults\": 2, \"children\": []}],\n  \"id\": \"test_hotel\",\n  \"currency\": \"EUR\"\n}"
            },
            "description": "Actualize bookable rates for a single chosen hotel."
          }
        }
      ]
    },
    {
      "name": "Prebook",
      "item": [
        {
          "name": "Prebook rate from hotelpage step",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/prebook/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "prebook", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"hash\": \"<book_hash>\",\n  \"price_increase_percent\": 20\n}"
            },
            "description": "Revalidate availability and price for a selected rate before booking."
          }
        }
      ]
    },
    {
      "name": "Booking and Orders",
      "item": [
        {
          "name": "Create booking process (order booking form)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/order/booking/form/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "order", "booking", "form", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"partner_order_id\": \"my-order-001\",\n  \"book_hash\": \"<book_hash>\",\n  \"language\": \"en\",\n  \"user_ip\": \"1.2.3.4\"\n}"
            },
            "description": "Create a new reservation process from a prebooked rate."
          }
        },
        {
          "name": "Order booking finish",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/order/booking/finish/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "order", "booking", "finish", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"partner_order_id\": \"my-order-001\",\n  \"language\": \"en\",\n  \"user\": {\"email\": \"guest@example.com\", \"phone\": \"+10000000000\", \"comment\": \"\"},\n  \"rooms\": [{\"guests\": [{\"first_name\": \"John\", \"last_name\": \"Doe\"}]}],\n  \"payment_type\": {\"type\": \"deposit\", \"amount\": \"100.00\", \"currency_code\": \"EUR\"}\n}"
            },
            "description": "Complete the reservation asynchronously."
          }
        },
        {
          "name": "Order booking finish status",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/order/booking/finish/status/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "order", "booking", "finish", "status", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"partner_order_id\": \"my-order-001\"\n}"
            },
            "description": "Poll until processing reaches ok or a final failure status."
          }
        },
        {
          "name": "Order information",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/order/info/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "order", "info", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"search\": {\"partner_order_ids\": [\"my-order-001\"]}\n}"
            },
            "description": "Retrieve a created order's information by partner booking identifier."
          }
        }
      ]
    },
    {
      "name": "Cancellation",
      "item": [
        {
          "name": "Order cancellation",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/order/cancel/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "order", "cancel", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"partner_order_id\": \"my-order-001\"\n}"
            },
            "description": "Cancel a booking by partner booking identifier."
          }
        }
      ]
    },
    {
      "name": "Hotel Content",
      "item": [
        {
          "name": "Hotel data search (static content)",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/info/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "info", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"id\": \"test_hotel\",\n  \"language\": \"en\"\n}"
            },
            "description": "Static hotel content lookup by hotel identifier."
          }
        },
        {
          "name": "Hotel data dump",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/hotel/info/dump/",
              "host": ["{{baseUrl}}"],
              "path": ["hotel", "info", "dump", ""]
            },
            "body": {
              "mode": "raw",
              "options": { "raw": { "language": "json" } },
              "raw": "{\n  \"language\": \"en\",\n  \"inventory\": \"all\"\n}"
            },
            "description": "Daily archive of all available hotels' static data for one language."
          }
        }
      ]
    },
    {
      "name": "Endpoints",
      "item": [
        {
          "name": "Endpoints overview",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/overview/",
              "host": ["{{baseUrl}}"],
              "path": ["overview", ""]
            },
            "description": "List endpoints available for your contract and their settings."
          }
        }
      ]
    }
  ]
}
