Giligetaway Logo

Giligetaway API v3

Complete guide for the Giligetaway APIs

Overview
GET
/api/agent-access/search-schedule/v3

Search for available Giligetaway boat schedules and sub-schedules between two destinations on a given date. Supports filtering by seat availability and requires API key authentication for registered agents.

Base URL

https://gili-server.my.id

Authentication

Agent ID + API Key

Response Format

JSON

Query Parameters
ParameterTypeRequiredDescription
fromnumber
Required
Origin port ID. Example: 8 (Serangan, Bali)
tonumber
Required
Destination port ID. Example: 2 (Gili Trawangan)
datestring
Required
Travel date in YYYY-M-D format. Example: 2025-9-1
passengers_totalnumber
Optional
Number of passengers. Filters schedules with sufficient available seats
agent_idnumber
Required
Agent identifier. Required for API key validation
api_keystring
Required
API key assigned to the agent
Destination ID Reference
Available ports and their corresponding IDs
Gili Gede
1
Gili Trawangan
2
Gili Air
3
Bangsal Lombok
5
Gili Meno
6
Nusa Penida
7
Serangan
8
Authentication

This endpoint requires validation of agent_id and api_key.

Invalid Authentication Example

{
  "success": false,
  "message": "Invalid API key"
}
Success Response
When schedules are found
200 OK
{
  "status": "success",
  "data": {
    "schedules": [
      {
        "id": 108,
        "subschedule_id": 108,
        "from": "Serangan, Bali",
        "to": "Gili Trawangan",
        "price": "825000.00",
        "departure_time": "09:00:00",
        "check_in_time": "08:15:00",
        "arrival_time": "11:15:00",
        "boat": {
          "id": 1,
          "name": "Giligetaway 2",
          "capacity": 40,
          "image": "https://...",
          "seat_layout": {
            "inside_seats": [...],
            "outside_seats": [...],
            "rooftop_seats": [...]
          }
        },
        "seatAvailability": {
          "bookedSeatNumbers": ["B1", "B2", "C1", "G1"]
        },
        "route_timeline": [...],
        "route_description": "Serangan → Gili Trawangan",
        "route_summary": "Direct route",
        "stops_count": 0
      }
    ],
    "passenger_count_requested": 2
  }
}
No Schedules Available
When no schedules match the criteria
200 OK
{
  "status": "success",
  "message": "No schedules available for 2 passengers. All selected schedules are full.",
  "data": {
    "schedules": [],
    "passenger_count_requested": 2,
    "seats_availability_issue": true
  }
}
Authentication Error
When authentication fails
400 Bad Request
or
403 Forbidden
{
  "success": false,
  "message": "agent_id and api_key are required"
}
Important Notes

Capacity Logic

capacity depends on the boost flag:

  • If boost = false: use public_capacity
  • If boost = true: use full capacity

Schedule Validity

Schedules are filtered by validity_start and validity_end. Schedules with validity_end on the request date are excluded.

Response Optimization

bookedSeatNumbers are returned for frontend reference but exclude unnecessary fields like id, availability, and boost for cleaner response.