Documentation

GoSkyHy Connectivity Partner Program

Everything hostel partners and channel manager engineering teams need to connect, sync, and go live on GoSkyHy.

Overview

What GoSkyHy is and how channel managers connect to it

GoSkyHy is a hostel booking platform — like Hostelworld or Booking.com, but built specifically for the hostel community. Travelers discover and book hostels through GoSkyHy's app and website.

Channel managers connect to GoSkyHy as a distribution channel. GoSkyHy publishes one API. Your channel manager integrates to it. Once connected, availability, rates, and bookings flow automatically between your channel manager and GoSkyHy — just like they do with Booking.com or Hostelworld.

Required

ARI sync

Your CM pushes availability, rates, and restrictions to GoSkyHy. One API call handles all three.

Required

Reservation delivery

GoSkyHy pushes new bookings to your CM. Your CM pushes bookings from other OTAs to GoSkyHy.

Required

Modifications + cancellations

Changes and cancellations flow both directions so every channel stays in sync.

Automatic

Nightly reconciliation

GoSkyHy runs a nightly diff to catch any drift between systems. Discrepancies are flagged and resolved automatically.

Key principle
GoSkyHy publishes one API. Your channel manager builds to it — exactly the same model as Booking.com, Hostelworld, or Airbnb. GoSkyHy does not build per-vendor adapters. Your engineering team integrates once, and every hostel on your platform can connect to GoSkyHy.

Supported Channel Managers

13 platforms, prioritized by partner demand

Hostel-native (best fit)

Channel ManagerStrengthPopular In
Beds24Built for hostels. Native dorm beds, per-bed pricing.Europe, Southeast Asia, Latin America
CloudbedsLarge installed base, click-to-connect via OAuth, native dorm support.Global (Americas, SEA)
HotelogixStrong hostel support with bed-level inventory tracking.Asia-Pacific
Little HotelierPart of SiteMinder network. Dorm beds, per-person pricing.Global
RentlioHostel-first design with full bed-level inventory.Europe (Balkans, Mediterranean)

Hotel-focused (works with translation)

Channel ManagerNotes
SiteMinderLargest global reach. Handles hostels but designed for hotels.
STAAHStrong in Asia-Pacific. Standard hostel support via room-type model.
eviivoUK/European small accommodation. Partial hostel support.
RoomRaccoonSouth African/European market. Limited hostel features.

Vacation rental focused (supported if requested)

Channel ManagerNotes
GuestyVacation rental model. No native dorm support — beds map as separate listings.
LodgifyVacation rental focused. No dorm or bed-level concept.
MyAllocatorNow part of Cloudbeds — use Cloudbeds integration instead.
How we prioritize
Every time a hostel partner tells us which CM they use during registration, that vote is recorded. The channel manager with the most requests gets integrated next. If your CM isn't live yet, requesting it moves it up the list.

How Integration Works

Seven stages from first contact to live bookings

1

Partner request

A hostel signs up on GoSkyHy and tells us which CM they use. That request is recorded and adds to the demand signal for your platform.

2

Vendor outreach

GoSkyHy contacts your business development team to begin the integration conversation. We share our API spec and discuss the technical scope.

3

Partnership agreement

Both sides sign a technical agreement covering data flows, security standards, and any commercial terms.

4

Your team integrates

Your engineering team builds to GoSkyHy's published API — the same connectivity model as Booking.com or Hostelworld. We provide sandbox access, test properties, and support.

5

Certification

GoSkyHy runs a certification suite against your integration — verifying ARI sync, reservation delivery, conflict handling, and error recovery.

6

Hostel connection

Hostel partners find GoSkyHy in your channel list, click Connect, and map their rooms. The partner does this from your dashboard — no GoSkyHy engineering involved.

7

Live sync

Beds, prices, and bookings flow automatically. When a guest books on GoSkyHy, your CM updates all other channels. When a guest books elsewhere, GoSkyHy sees it too.

For Hostel Owners

What you need to do — and nothing more

One-time setup

1

Sign up on the partner portal

Enter your business name, email, and password. Verify your email.

2

Add your hostel

Property name, location, type, and a cover photo.

3

Set up rooms and beds

Add each room (e.g. "6-Bed Mixed Dorm") and the individual beds within it. This tells GoSkyHy exactly what you have.

4

Set prices and availability

Use the calendar to set which beds are available on which dates and at what price.

5

Tell us your channel manager

Pick it from the dropdown or type the name. If your CM is already live, you can connect immediately. If not, your request helps us prioritize it.

After connecting your CM

  • You don't need to update GoSkyHy separately. Changes in your CM flow to GoSkyHy automatically.
  • Bookings made on GoSkyHy flow back to your CM. Your other channels see the updated availability instantly.
  • Merchandise is completely separate. T-shirts, stickers, and merch are managed only in GoSkyHy. Your CM never touches merchandise.
  • Check sync status anytime. Your dashboard shows when the last sync happened, whether it succeeded, and any conflicts.
No channel manager?
No problem. You can list manually — add rooms, set rates, and manage availability directly from the partner portal. You don't need a channel manager to use GoSkyHy.

For CM Engineering Teams

Technical architecture and integration model

GoSkyHy models hostels at bed-level granularity. A 6-bed mixed dorm has 6 individually bookable units, each with its own availability and price. If your platform supports bed-level inventory, this maps directly. If your platform is room-centric, GoSkyHy handles the translation — push room-level counts and GoSkyHy distributes across beds.

Data model

Hostel (property)
 └─ HostelRoom (room type)
      ├─ category: DORM_MIXED | DORM_FEMALE | DORM_MALE |
      │            PRIVATE_ENSUITE | PRIVATE_SHARED_BATH |
      │            FAMILY | CAPSULE
      ├─ maxOccupancy: number
      ├─ externalId ← YOUR room-type ID (set during mapping)
      │
      ├─ HostelRatePlan (pricing configuration)
      │    ├─ name, code, isDefault
      │    ├─ externalId ← YOUR rate plan ID
      │    └─ derivedFrom (linked rates), minStay, maxStay
      │
      └─ HostelBed (sellable unit)
           ├─ label, type (BUNK_TOP, SINGLE, DOUBLE, etc.)
           ├─ externalId ← YOUR bed/unit ID
           │
           └─ HostelBedInventory (per-bed, per-date)
                ├─ date, status, priceCents, currency
                ├─ minStay, maxStay, stopSell
                └─ updatedFrom: PORTAL | CM_BEDS24 | CM_CLOUDBEDS | ...

Conflict resolution

Portal wins
Every inventory row has a version integer. Portal writes always increment version. CM writes only apply if their version is newer. If a partner edits a price in GoSkyHy's portal and your CM pushes a different price, the portal edit wins. Your update is logged as a conflict (visible to the partner) but not applied. GoSkyHy then pushes the portal value back to your CM to bring it into alignment.

What you need to build

CapabilityDirectionRequired
Push ARI updates (availability + rates + restrictions)Your CM → GoSkyHyRequired
Receive reservation notificationsGoSkyHy → Your CMRequired
Push reservations from other OTAsYour CM → GoSkyHyRequired
Handle modifications and cancellationsBoth directionsRequired
Rate plan supportBoth directionsIf supported
Bed-level granularityBoth directionsIf supported
CTA/CTD/StopSell restrictionsYour CM → GoSkyHyIf supported

API Reference

Two endpoints. That's it.

GoSkyHy keeps the API surface minimal. Rather than separate endpoints for availability, rates, and restrictions, everything goes through two calls — one for ARI updates and one for reservations. Fewer calls, fewer failure modes, simpler integration.

Endpoint 1: ARI Update (availability + rates + restrictions)

Request
POST /api/v1/channel/ari
Content-Type: application/json
Authorization: Bearer {your_api_key}
X-Idempotency-Key: {unique_id}

{
  "propertyExternalId": "prop_12345",
  "updates": [
    {
      "roomExternalId": "room_101",
      "date": "2026-05-15",
      "available": true,
      "count": 4,
      "priceCents": 2500,
      "currency": "USD",
      "ratePlanExternalId": "rp_standard",
      "closedToArrival": false,
      "closedToDeparture": false,
      "minStay": null,
      "maxStay": null,
      "stopSell": false
    }
  ]
}
One call does everything
Availability, rates, and restrictions in a single request. Only include fields that changed — omitted fields are left unchanged. Batch up to 500 updates per call.
Response (success)
{
  "status": "accepted",
  "processed": 1,
  "conflicts": 0
}
Response (partial conflict — portal edited same bed+date)
{
  "status": "partial",
  "processed": 0,
  "conflicts": 1,
  "conflictDetails": [
    {
      "roomExternalId": "room_101",
      "date": "2026-05-15",
      "reason": "PORTAL_EDIT_NEWER",
      "portalVersion": 7,
      "yourVersion": 5
    }
  ]
}

Endpoint 2: Reservation (new, modified, or cancelled)

New reservation (other OTA → your CM → GoSkyHy)
POST /api/v1/channel/reservation
Content-Type: application/json
Authorization: Bearer {your_api_key}
X-Idempotency-Key: {unique_id}

{
  "propertyExternalId": "prop_12345",
  "action": "new",
  "reservation": {
    "externalReservationId": "BK-2026-78901",
    "guestName": "Alex Rivera",
    "guestEmail": "alex@example.com",
    "checkIn": "2026-05-15",
    "checkOut": "2026-05-18",
    "roomExternalId": "room_101",
    "bedExternalIds": ["bed_A1"],
    "guestCount": 1,
    "totalPriceCents": 7500,
    "currency": "USD",
    "source": "booking.com"
  }
}
Cancellation
POST /api/v1/channel/reservation
Authorization: Bearer {your_api_key}
X-Idempotency-Key: {unique_id}

{
  "propertyExternalId": "prop_12345",
  "action": "cancel",
  "reservation": {
    "externalReservationId": "BK-2026-78901",
    "reason": "Guest requested cancellation"
  }
}
Modification (date change)
POST /api/v1/channel/reservation
Authorization: Bearer {your_api_key}
X-Idempotency-Key: {unique_id}

{
  "propertyExternalId": "prop_12345",
  "action": "modify",
  "reservation": {
    "externalReservationId": "BK-2026-78901",
    "newCheckIn": "2026-05-16",
    "newCheckOut": "2026-05-19"
  }
}
That's the entire API
Two endpoints. One for ARI, one for reservations. New bookings, modifications, and cancellations all go through the same reservation endpoint using the action field. A full OpenAPI spec is available for download — email partners@goskyhy.com.

What GoSkyHy sends to your CM (outbound)

When a guest books on GoSkyHy, we call your reservation webhook with the booking details. You provide the webhook URL during setup. The payload shape mirrors the inbound format so your team only learns one schema.

EventWhenWhat GoSkyHy sends
New bookingGuest pays on GoSkyHyFull reservation (guest, dates, room, price)
CancellationPartner or guest cancelsReservation ID + reason
ModificationGuest changes dates/roomReservation ID + changed fields
ARI correctionPortal edit wins over CM pushCorrected ARI values (so your CM stays aligned)

Data Flows

How data moves between systems, step by step

Guest books on GoSkyHy
Guest              GoSkyHy             Your CM            Other OTAs
 │                    │                    │                    │
 │  Book bed A1       │                    │                    │
 │  May 15-18, $75    │                    │                    │
 │───────────────────>│                    │                    │
 │                    │                    │                    │
 │                    │ Mark bed A1 BOOKED │                    │
 │                    │ (internal write)   │                    │
 │                    │                    │                    │
 │                    │ POST reservation   │                    │
 │                    │ to your webhook    │                    │
 │                    │───────────────────>│                    │
 │                    │                    │                    │
 │                    │  { received: ok }  │                    │
 │                    │<───────────────────│                    │
 │                    │                    │                    │
 │                    │                    │ Reduce avail on   │
 │                    │                    │ all channels       │
 │                    │                    │───────────────────>│
 │                    │                    │                    │
 │  Booking confirmed │                    │                    │
 │<───────────────────│                    │                    │
Guest books on another OTA (via your CM)
Guest             Booking.com         Your CM              GoSkyHy
 │                    │                    │                    │
 │  Book room 101     │                    │                    │
 │───────────────────>│                    │                    │
 │                    │  Notification      │                    │
 │                    │───────────────────>│                    │
 │                    │                    │                    │
 │                    │                    │ POST /api/v1/      │
 │                    │                    │ channel/reservation│
 │                    │                    │───────────────────>│
 │                    │                    │                    │
 │                    │                    │  { accepted }      │
 │                    │                    │<───────────────────│
 │                    │                    │                    │
CM pushes rate update
Partner           Your CM              GoSkyHy
 │                    │                    │
 │  Change price      │                    │
 │  bed A1 → $30      │                    │
 │───────────────────>│                    │
 │                    │                    │
 │                    │ POST /api/v1/      │
 │                    │ channel/ari        │
 │                    │───────────────────>│
 │                    │                    │
 │                    │  { accepted,       │
 │                    │    processed: 6 }  │
 │                    │<───────────────────│
Conflict: portal edit wins over CM push
Partner            GoSkyHy              Your CM
 │                    │                    │
 │  Set price $35     │                    │
 │  (portal edit)     │                    │
 │───────────────────>│                    │
 │                    │                    │
 │                    │ Write $35,         │
 │                    │ version=8,         │
 │                    │ source=PORTAL      │
 │                    │                    │
 │                    │                    │ POST /api/v1/
 │                    │                    │ channel/ari
 │                    │                    │ (price=$30, v=5)
 │                    │                    │──────────────────>│
 │                    │                    │                   │
 │                    │ v8 > v5 → reject   │                   │
 │                    │ → log conflict     │                   │
 │                    │                    │                   │
 │                    │ { partial,         │                   │
 │                    │   conflicts: 1 }   │                   │
 │                    │───────────────────>│                   │
 │                    │                    │                   │
 │                    │ Push $35 back to   │                   │
 │                    │ your CM (corrective│                   │
 │                    │ ARI push)          │                   │
 │                    │───────────────────>│                   │

Error Handling

Every error has a code, a message, and a fix

Authentication errors

HTTPCodeCauseFix
401INVALID_API_KEYAPI key not recognized or revokedRe-issue from partner dashboard
401TOKEN_EXPIREDOAuth token expiredRefresh using refresh token endpoint
401CONNECTION_REVOKEDPartner disconnected your CMPartner must reconnect

Validation errors

HTTPCodeCauseFix
400INVALID_PAYLOADJSON parse failure or missing fieldsCheck request body against schema
400UNKNOWN_PROPERTYProperty not found or not connectedVerify property is mapped
400UNKNOWN_ROOMRoom external ID not mappedRun room mapping first
400INVALID_DATE_RANGEcheckIn >= checkOut or past datesCheck date logic
400BATCH_TOO_LARGEMore than 500 updatesSplit into multiple requests
422RESERVATION_CONFLICTBed already booked for those datesCheck availability before sending

Server errors

HTTPCodeFix
429RATE_LIMITEDBack off per Retry-After header
500INTERNAL_ERRORRetry with backoff; GoSkyHy is alerted automatically
503SERVICE_UNAVAILABLERetry after Retry-After header value

Rate limits

LimitValue
Requests per minute per connection120
Max payload size1 MB
Max updates per ARI batch500
Response time target< 2 seconds (p95)

Sandbox & Testing

Test the full flow before going live

After the partnership agreement is signed, GoSkyHy provides a sandbox environment with a pre-configured test hostel, API credentials, and a webhook receiver. Your team runs the certification scenarios against the sandbox before touching production.

Test property layout

GoSkyHy Sandbox Lodge
├── "6-Bed Mixed Dorm" (DORM_MIXED, max 6)
│   ├── Bed A1 (BUNK_TOP)    ├── Bed A4 (BUNK_BOTTOM)
│   ├── Bed A2 (BUNK_BOTTOM) ├── Bed A5 (SINGLE)
│   └── Bed A3 (BUNK_TOP)    └── Bed A6 (SINGLE)
│
├── "4-Bed Female Dorm" (DORM_FEMALE, max 4)
│   ├── Bed B1 (BUNK_TOP)    ├── Bed B3 (BUNK_TOP)
│   └── Bed B2 (BUNK_BOTTOM) └── Bed B4 (BUNK_BOTTOM)
│
├── "Private Double" (PRIVATE_ENSUITE, max 2)
│   └── Bed C1 (DOUBLE)
│
└── "Family Room" (FAMILY, max 4)
    ├── Bed D1 (QUEEN)
    └── Bed D2 (BUNK_TOP + BUNK_BOTTOM)

Rate Plans: Standard (STD), Non-Refundable (NR), Weekly (WK)

Certification scenarios

#ScenarioWhat we verify
1Room mappingAll rooms and beds correctly mapped
2ARI pushAvailability, rates, and restrictions accepted
3Inbound reservationGoSkyHy ingests booking and marks beds BOOKED
4Outbound reservationYour CM accepts GoSkyHy booking with valid ID
5Cancellation (both ways)Inventory released correctly in both systems
6ModificationDate/room changes reflected in both systems
7Conflict resolutionPortal edit wins; corrective push sent to CM
8IdempotencyDuplicate requests don't create duplicate data
9Error handlingYour CM handles 4xx/5xx responses gracefully
10ReconciliationNightly diff catches and resolves drift

Go-Live Checklist

From certification to live bookings

#StepOwner
1All certification scenarios pass in sandboxGoSkyHy + CM
2Production API credentials issuedBoth
3Production webhook URLs registeredBoth
4One real hostel connected as betaPartner + GoSkyHy
548-hour monitoring period — zero critical errorsGoSkyHy
6Reconciliation runs clean for 3 consecutive nightsGoSkyHy
7Partner confirms data matches their CM dashboardPartner
8Integration marked LIVE — all hostels can connectGoSkyHy

Ready to integrate?

Whether you're a hostel looking to list or a CM team ready to connect, we'd love to hear from you.