Volver a Inicio
Ejemplos cURL
Prueba la API de ReciGo directamente desde la línea de comandos.
Configuración
Define tu API key como variable de entorno para no tener que escribirla en cada comando:
# Linux / macOS
export RECIGO_API_KEY="recigo_live_abc123..."
# Windows (PowerShell)
$env:RECIGO_API_KEY="recigo_live_abc123..."
# Windows (CMD)
set RECIGO_API_KEY=recigo_live_abc123...Ejemplo 1: Estimación de Precio
POST /v1/pricing/estimate
curl -X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"size": "L",
"pickup": {
"address": "Calle Gran Vía 1, Madrid",
"floor": 3,
"has_elevator": false
},
"dropoff": {
"address": "Calle Alcalá 100, Madrid",
"floor": 1,
"has_elevator": true
}
}'Respuesta Ejemplo
{
"base_price_eur": 45.00,
"platform_fee_eur": 1.49,
"total_customer_pays_eur": 46.49,
"helper_receives_eur": 38.25,
"calculation_breakdown": {
"base_by_size": 30.00,
"distance_km": 2.5,
"distance_charge_eur": 12.00,
"stairs_charge_eur": 3.00,
"service_modifier": 1.0,
"urgency_modifier": 0.0
},
"estimated_duration_minutes": 90,
"disclaimer": "Este es un precio aproximado. El precio final puede variar."
}Ejemplo 2: Crear Trabajo
POST /v1/jobs
curl -X POST https://api.recigo.es/v1/jobs \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"external_reference": "listing-12345",
"title": "Mover sofá de 2 plazas",
"description": "Sofá gris en buen estado, necesita 2 personas",
"size": "L",
"pickup": {
"address": "Calle Gran Vía 1, Madrid",
"floor": 3,
"has_elevator": false
},
"dropoff": {
"address": "Calle Alcalá 100, Madrid",
"floor": 1,
"has_elevator": true
},
"customer_phone": "+34612345678",
"photos": [
"https://mi-plataforma.com/images/sofa1.jpg",
"https://mi-plataforma.com/images/sofa2.jpg"
]
}'Respuesta Ejemplo
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "draft",
"external_reference": "listing-12345",
"created_at": "2026-02-21T09:00:00Z",
"deep_link_url": "https://recigo.es/draft/550e8400-e29b-41d4-a716-446655440000?phone=%2B34612345678",
"sms_sent": true,
"pricing": {
"base_price_eur": 45.00,
"platform_fee_eur": 1.49,
"total_customer_pays_eur": 46.49,
"helper_payout_eur": 38.25
},
"photos": [
"https://recigo-storage.supabase.co/job-photos/uuid1.jpg",
"https://recigo-storage.supabase.co/job-photos/uuid2.jpg"
],
"next_steps": {
"action": "customer_must_complete_in_app",
"message": "SMS sent to customer with link to complete job in ReciGo app.",
"expires_at": "2026-02-23T09:00:00Z"
}
}Ejemplo 3: Consultar Estado del Trabajo
GET /v1/jobs/{job_id}
curl -X GET https://api.recigo.es/v1/jobs/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: $RECIGO_API_KEY"Respuesta Ejemplo
{
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"external_reference": "listing-12345",
"status": "posted",
"created_at": "2026-02-21T09:00:00Z",
"updated_at": "2026-02-21T09:15:00Z"
}Ejemplo 4: Formato Bonito con jq
Usa jq para formatear las respuestas JSON:
# Instalar jq
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# Windows (usando Chocolatey)
choco install jqUsar jq para formatear respuestas
curl -X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"}
}' | jq .Extraer solo el precio total
curl -s -X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"}
}' | jq -r '.total_customer_pays_eur'
# Salida: 46.49Ejemplo 5: Guardar Respuesta en Archivo
Guardar respuesta completa
curl -X POST https://api.recigo.es/v1/jobs \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Mover sofá",
"description": "Sofá de 2 plazas",
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"},
"customer_phone": "+34612345678"
}' > job_response.json
# Ver el contenido
cat job_response.json | jq .Extraer el job_id y guardarlo
JOB_ID=$(curl -s -X POST https://api.recigo.es/v1/jobs \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Mover sofá",
"description": "Sofá de 2 plazas",
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"},
"customer_phone": "+34612345678"
}' | jq -r '.job_id')
echo "Job ID: $JOB_ID"
# Consultar el estado usando la variable
curl -X GET "https://api.recigo.es/v1/jobs/$JOB_ID" \
-H "X-API-Key: $RECIGO_API_KEY"Ejemplo 6: Script Bash Completo
create_delivery.sh
#!/bin/bash
# Script para crear un trabajo de entrega en ReciGo
# Configuración
API_KEY="${RECIGO_API_KEY}"
BASE_URL="https://api.recigo.es/v1"
if [ -z "$API_KEY" ]; then
echo "Error: RECIGO_API_KEY no está definida"
exit 1
fi
# Parámetros del trabajo
TITLE="$1"
PICKUP="$2"
DROPOFF="$3"
PHONE="$4"
SIZE="${5:-L}" # Por defecto L si no se especifica
if [ -z "$TITLE" ] || [ -z "$PICKUP" ] || [ -z "$DROPOFF" ] || [ -z "$PHONE" ]; then
echo "Uso: $0 <título> <pickup> <dropoff> <teléfono> [tamaño]"
echo "Ejemplo: $0 'Mover sofá' 'Calle Gran Vía 1, Madrid' 'Calle Alcalá 100, Madrid' '+34612345678' 'L'"
exit 1
fi
echo "🚀 Creando trabajo de entrega..."
echo " Título: $TITLE"
echo " Pickup: $PICKUP"
echo " Dropoff: $DROPOFF"
echo " Teléfono: $PHONE"
echo " Tamaño: $SIZE"
echo ""
# Crear trabajo
RESPONSE=$(curl -s -X POST "$BASE_URL/jobs" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"title\": \"$TITLE\",
\"description\": \"Creado via script\",
\"size\": \"$SIZE\",
\"pickup\": {\"address\": \"$PICKUP\"},
\"dropoff\": {\"address\": \"$DROPOFF\"},
\"customer_phone\": \"$PHONE\"
}")
# Verificar si hay error
ERROR=$(echo "$RESPONSE" | jq -r '.error // empty')
if [ -n "$ERROR" ]; then
echo "❌ Error al crear trabajo:"
echo "$RESPONSE" | jq .
exit 1
fi
# Extraer datos
JOB_ID=$(echo "$RESPONSE" | jq -r '.job_id')
STATUS=$(echo "$RESPONSE" | jq -r '.status')
DEEP_LINK=$(echo "$RESPONSE" | jq -r '.deep_link_url')
PRICE=$(echo "$RESPONSE" | jq -r '.pricing.total_customer_pays_eur')
echo "✅ Trabajo creado exitosamente:"
echo " Job ID: $JOB_ID"
echo " Estado: $STATUS"
echo " Precio: €$PRICE"
echo " Deep Link: $DEEP_LINK"
echo ""
echo "📱 SMS enviado al cliente con el enlace para completar el trabajo."
# Guardar en archivo de log
echo "$(date): $JOB_ID | $TITLE | $PRICE" >> recigo_jobs.logUso del Script
# Dar permisos de ejecución
chmod +x create_delivery.sh
# Ejecutar
./create_delivery.sh \
"Mover sofá de 2 plazas" \
"Calle Gran Vía 1, Madrid" \
"Calle Alcalá 100, Madrid" \
"+34612345678" \
"L"Manejo de Errores
Verificar código de estado HTTP
# Guardar código de estado
HTTP_CODE=$(curl -s -o response.json -w "%{http_code}" \
-X POST https://api.recigo.es/v1/jobs \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Mover sofá",
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"},
"customer_phone": "+34612345678"
}')
if [ "$HTTP_CODE" -eq 201 ]; then
echo "✅ Éxito:"
cat response.json | jq .
elif [ "$HTTP_CODE" -eq 400 ]; then
echo "❌ Error de validación:"
cat response.json | jq .
elif [ "$HTTP_CODE" -eq 401 ]; then
echo "❌ API key inválida"
cat response.json | jq .
elif [ "$HTTP_CODE" -eq 429 ]; then
echo "❌ Límite de tasa excedido"
cat response.json | jq .
else
echo "❌ Error desconocido (HTTP $HTTP_CODE):"
cat response.json | jq .
fi
# Limpiar
rm response.jsonDebugging
Ver headers de la respuesta
curl -v -X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"}
}'Solo ver headers (sin body)
curl -I -X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json"Medir tiempo de respuesta
curl -w "\nTiempo total: %{time_total}s\n" \
-X POST https://api.recigo.es/v1/pricing/estimate \
-H "X-API-Key: $RECIGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"size": "L",
"pickup": {"address": "Calle Gran Vía 1, Madrid"},
"dropoff": {"address": "Calle Alcalá 100, Madrid"}
}'