1. Push Rooms
Swoovo — OTA Pull Endpoint
  • For OTA Hotels
    • List hotels (paginated)
      GET
  • Push Rooms
    • Push rooms (async)
      POST
  • Push Inventory
    • Push inventory (async)
      POST
  • Push Rates
    • Push rates (async)
      POST
  • Push Overrides Price & Inventory
    • Push inventory overrides (async)
      POST
    • Push pricing overrides (async)
      POST
  • Mapped Properties
    • List mapped properties
      POST
  • Jobs
    • Get room push job status
      GET
    • Get inventory push job status
      GET
    • Get rates push job status
      GET
    • Get override job status
      GET
  • Schemas
    • HotelListResponse
    • ErrorResponse
    • Hotel
    • AsyncJobAcceptedResponse
    • HotelImage
    • PushRoomsRequest
    • RoomData
    • RoomImage
    • BaseInventoryEmbed
    • RoomRateEmbed
    • ChildPricingRules
    • ChildPricingThreshold
    • PushInventoryRequest
    • BaseInventoryItem
    • InventoryOverrideItem
    • PushRatesRequest
    • RoomRateInput
    • PushInventoryOverridesRequest
    • InventoryOverrideRequest
    • PushPricingRulesRequest
    • PricingRuleRequest
    • JobStatusResponse
    • JobStatusData
    • RoomJobStatusResponse
    • RoomJobStatusData
    • InventoryJobStatusResponse
    • InventoryJobStatusData
    • RatesJobStatusResponse
    • RatesJobStatusData
    • MappedPropertiesResponse
    • MappedProperty
  1. Push Rooms

Push rooms (async)

POST
/api/v1/push/rooms
Push one or more rooms for a single property.
Full replacement semantics: Every room in this payload will be
created or updated. Any existing room not included in the
payload is deactivated (status = inactive), not deleted.
Returns immediately with a job_id (string, e.g.
"rooms_1_1703123456789"). Poll /api/v1/rooms/status?job_id=<id>
for progress.

Request

Authorization
API Key
Add parameter in header
X-API-Key
Example:
X-API-Key: ********************
or
Body Params application/jsonRequired

Examples

Responses

🟢202
application/json
Room push job accepted
Bodyapplication/json

🟠400BadRequest
🟠401Unauthorized
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/api/v1/push/rooms' \
--header 'X-API-Key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
    "ota_property_id": "HOTEL12345",
    "rooms": [
        {
            "ota_room_code": "DLX_KING_001",
            "room_name": "Deluxe King Room",
            "room_type": "Deluxe",
            "max_adults": 3,
            "max_children": 2,
            "status": "active",
            "amenity_ids": [
                1,
                5,
                8
            ],
            "images": [
                {
                    "url": "https://cdn.example.com/rooms/dlx-king/main.jpg",
                    "subtitle": "room",
                    "display_order": 1
                },
                {
                    "url": "https://cdn.example.com/rooms/dlx-king/bath.jpg",
                    "subtitle": "bathroom",
                    "display_order": 2
                }
            ],
            "base_inventory": {
                "base_inventory_count": 5
            },
            "rates": [
                {
                    "meal_plan_code": "EP",
                    "adults_1": 1200,
                    "adults_2": 1500,
                    "adults_3": 1800
                },
                {
                    "meal_plan_code": "CP",
                    "adults_1": 1500,
                    "adults_2": 1800,
                    "adults_3": 2100
                }
            ],
            "child_pricing_rules": [
                {
                    "meal_plan_code": "EP",
                    "thresholds": [
                        {
                            "age_threshold": 5,
                            "children_1": 0,
                            "children_2": 0
                        },
                        {
                            "age_threshold": 12,
                            "children_1": 200,
                            "children_2": 400
                        }
                    ]
                }
            ]
        }
    ]
}'
Response Response Example
202 - Success
{
    "status": true,
    "message": "Room push started. Job ID rooms_1_1703123456789.",
    "job_id": "rooms_1_1703123456789"
}
Modified at 2026-11-12 09:12:10
Previous
List hotels (paginated)
Next
Push inventory (async)
Built with