> ## Documentation Index
> Fetch the complete documentation index at: https://developers.vulcanopro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Traslados

> Ciudades, lugares y búsqueda de traslados por origen, destino, fecha y pasajeros.

## Descripción

Los traslados se consultan en **tres pasos**:

1. **Ciudades** — catálogo de ciudades activas.
2. **Lugares** — aeropuertos, estaciones, hoteles u otros de una ciudad.
3. **Búsqueda** — vehículos disponibles para un origen, destino, fecha, hora y pasajeros.

> [!WARNING]
>
> Estos endpoints requieren el permiso **`transfers:read`**. La búsqueda también exige un canal Vulcano vinculado al partner (`sale_channel_id` se inyecta en el servidor).

## Flujo recomendado

```
1. GET /transfers/cities
2. GET /transfers/places?city_id=…&type=airport
3. GET /transfers/places?city_id=…&type=hotel
4. GET /transfers?origin_place_id=…&destination_place_id=…&date=…&time=…&passengers=…
5. POST /transfers/reservations  → hold
```

Los `id` de ciudad, lugar y traslado son IDs de Vulcano. Usalos tal cual en el hold.

## Ciudades

`GET /transfers/cities`

```bash theme={null}
curl -s "https://api-sandbox.vulcanopro.com/api/v1/transfers/cities" \
  -H "X-API-KEY: TU_API_KEY" \
  -H "X-API-SECRET: TU_API_SECRET"
```

```json theme={null}
{
  "status": "ok",
  "data": {
    "cities": [
      { "id": 1, "name": "Santiago", "code": "SCL", "country": "CL" }
    ]
  },
  "timestamp": "2026-10-31T12:00:00.000Z"
}
```

## Lugares

`GET /transfers/places`

| Parámetro | Tipo | Requerido | Descripción |
| - | - | - | - |
| `city_id` | integer | Sí | ID de `GET /transfers/cities` |
| `type` | string | Sí | `airport`, `station`, `hotel` u `other` |

```bash theme={null}
curl -s "https://api-sandbox.vulcanopro.com/api/v1/transfers/places?city_id=1&type=airport" \
  -H "X-API-KEY: TU_API_KEY" \
  -H "X-API-SECRET: TU_API_SECRET"
```

```json theme={null}
{
  "status": "ok",
  "data": {
    "places": [
      {
        "id": 1,
        "label": "SCL Airport",
        "city_id": 1,
        "city_name": "Santiago",
        "type": "airport",
        "type_label": "Aeropuerto"
      }
    ]
  },
  "timestamp": "2026-10-31T12:00:00.000Z"
}
```

## Búsqueda

`GET /transfers`

| Parámetro | Tipo | Requerido | Descripción |
| - | - | - | - |
| `origin_place_id` | integer | Sí | Lugar de origen |
| `destination_place_id` | integer | Sí | Lugar de destino |
| `date` | string | Sí | `YYYY-MM-DD` |
| `time` | string | Sí | `HH:mm` |
| `passengers` | integer | Sí | 1–99 |
| `page` | integer | No | Página (desde 1) |
| `per_page` | integer | No | Resultados por página (máx. 100) |

```bash theme={null}
curl -s "https://api-sandbox.vulcanopro.com/api/v1/transfers?origin_place_id=1&destination_place_id=6&date=2026-10-31&time=12:30&passengers=2" \
  -H "X-API-KEY: TU_API_KEY" \
  -H "X-API-SECRET: TU_API_SECRET"
```

Cada ítem incluye `name` (vehículo), `rates` (Adulto / Niño / Adulto mayor si aplica), extras, políticas y `free_cancellation`. `free_cancellation` es `true` cuando, al momento de la búsqueda, el tramo vigente de cancelación tiene **0% de penalidad**.

Si el traslado ofrece regreso, cada rate puede incluir `return_price_clp` y `return_price_usd`. Las tarifas en `price_usd` / `return_price_usd` se completan o recalcan como en tours (tipo de cambio + markup del partner).

```json theme={null}
{
  "status": "ok",
  "data": {
    "transfers": [
      {
        "id": 14,
        "type": "private",
        "type_label": "Privado",
        "name": "Van",
        "slug": "van",
        "photo_url": "https://example.com/van.jpg",
        "passengers": 3,
        "luggage": 2,
        "duration_label": "1 h 15 min",
        "origin": "SCL Airport",
        "origin_place_id": 1,
        "destination": "Hotel Diego de Almagro",
        "destination_place_id": 6,
        "date": "2026-10-31",
        "departure_time": "12:30",
        "free_cancellation": true,
        "price_unit": "vehicle",
        "age_fares": false,
        "rates": [
          {
            "name": "Adulto",
            "ageFrom": 18,
            "ageTo": 99,
            "isChild": false,
            "price_clp": "15.000",
            "price_usd": "15.00"
          }
        ],
        "additional_activities": [
          {
            "id": 8,
            "name": "Silla de infante",
            "description": null,
            "price_clp": "3.000",
            "price_usd": "3.00"
          }
        ],
        "cancellations_policies": [
          { "id": 1, "hours_before": 48, "penalty_percentage": 0 },
          { "id": 2, "hours_before": 0, "penalty_percentage": 100 }
        ]
      }
    ],
    "pagination": {
      "page": 1,
      "per_page": 25,
      "total": 1,
      "count": 1,
      "last_page": 1
    }
  },
  "timestamp": "2026-10-31T12:00:00.000Z"
}
```

## Siguiente paso

Con `id` del traslado, origen, destino, fecha y hora: [Reservas de traslados](https://developers.vulcanopro.com/catalog/transfer-reservations.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.