Base URL https://api.afer.pro aferapp.com
Charters

Listar flota de charter

POST https://api.afer.pro/listCharters

Devuelve la flota de charter publicada de tu cuenta: barcos, franjas horarias, precios por mes y disponibilidad semanal.

Expone el catálogo completo de embarcaciones activas en el marketplace, listo para consumir desde webs, agregadores o asistentes de IA. Para cada barco se incluyen:

— Datos comerciales: títulos en español e inglés, capacidad, si requiere licencia, fianza reembolsable, tipo de gestión (propio, en gestión o partner externo) y si se comercializa en exclusiva.
— El puerto de salida con su enlace de Google Maps.
— Hasta 3 imágenes del barco.
— Las franjas horarias públicas (día completo, medio día…) con horario de check-in/check-out, si exigen patrón, si incluyen combustible, y para cada mes del año si está operativa y su precio, además de los días de la semana disponibles.

Solo se devuelven barcos publicados con al menos una franja con precio.

Autenticación

Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →

Parámetros del cuerpo

Este endpoint no necesita parámetros: basta un cuerpo JSON vacío ({}) con tus cabeceras de autenticación.

Ejemplo de petición

curl -X POST 'https://api.afer.pro/listCharters' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{}'
<?php

$data = [
];

$ch = curl_init('https://api.afer.pro/listCharters');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-API-KEY: afer_tk_TU_TOKEN',
    'X-API-SECRET: afer_sk_TU_SECRET',
]);

$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/listCharters', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({})
});

const resultado = await respuesta.json();

Respuesta

Devuelve boats, un array donde cada elemento contiene un objeto boat. Las claves de time_slots son el identificador cifrado de la franja: guárdalo para referenciar la franja en reservas.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "boats": [
            {
                "boat": {
                    "boatId": "aBc123XyZ…",
                    "title_es_es": "Llaut clásico mallorquín",
                    "title_en_uk": "Classic Mallorcan llaut",
                    "url_booking_web": "https://bookings.tuempresa.com/llaut-clasico",
                    "capacity_people": "8 people",
                    "requires_license": "no",
                    "refundable_deposit": "300",
                    "ownership_type": "owned",
                    "is_exclusive": "yes",
                    "departure_port": {
                        "name": "Port d'Alcúdia",
                        "google_maps_url": "https://maps.app.goo.gl/…"
                    },
                    "images": [
                        {
                            "url": "https://prosuite.aferapp.com/attachments/public/upload/products/1234/foto1.jpg"
                        }
                    ],
                    "time_slots": {
                        "dEf456…": {
                            "title_es_es": "Día completo",
                            "title_en_uk": "Full day",
                            "check_in_time": "10:00",
                            "check_out_time": "18:00",
                            "requires_skipper": "no",
                            "fuel_included": "no",
                            "available_in_month_6": "yes",
                            "price_in_month_6": 450,
                            "available_in_monday": "yes",
                            "available_in_sunday": "yes"
                        }
                    }
                }
            }
        ]
    }
}
Notas
  • Los campos available_in_month_1…12 y price_in_month_1…12 cubren los 12 meses del año en curso; available_in_monday…sunday, los 7 días de la semana. El ejemplo se muestra abreviado.
  • Los precios aplican la cotización por fecha configurada en Afer (temporadas y porcentajes por fecha).
  • Para el detalle completo de un barco (todas las imágenes, nombre interno), usa getCharter.