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 jq
Usar 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.49

Ejemplo 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.log

Uso 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.json

Debugging

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"}
  }'

Más Ejemplos