HALPIIHALPII

Para agentes de IA

HALPII para agentes de IA

Esta página explica, en texto plano, qué es HALPII y cómo un asistente (ChatGPT, Gemini, Claude o cualquier otro) puede consultar el directorio y crear un pedido de servicio en nombre de su usuario. La misma guía en formato llms.txt.

Qué es HALPII

HALPII es un directorio de oficios y servicios en Perú y 12 países de Latinoamérica: gasfiteros, electricistas, pintores, albañiles, carpinteros y más de 190 oficios. El cliente describe lo que necesita en un minuto, sin registrarse; hasta 3 profesionales de su zona le responden con una propuesta y el cliente elige.

Los profesionales pagan por responder cada pedido. El cliente no paga por pedir ni por recibir propuestas. Cada cliente puede tener un pedido activo a la vez.

HALPII S.A.C. (RUC 20615614841), Lima, Perú. Contacto: [email protected]

Cómo consultar (sin crear nada)

Cómo crear un pedido

Es la misma API pública que usa el formulario de /solicitar. Base: https://api.halpii.com/api. Son dos llamadas.

Paso 1 — crear la identidad de invitado

Devuelve un token JWT. El nombre es opcional; usa el que el usuario quiera dar.

Petición

curl -X POST https://api.halpii.com/api/auth/guest \
  -H "Content-Type: application/json" \
  -d '{ "name": "María" }'

Respuesta (200)

{
  "id": "6f1c…",
  "nombre": "María",
  "is_guest": true,
  "token": "eyJhbGciOi…",
  "isNewUser": true
}

Paso 2 — crear el pedido con ese token

Petición

curl -X POST https://api.halpii.com/api/publications \
  -H "Authorization: Bearer <token del paso 1>" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Necesito gasfitero por fuga de agua en el baño",
    "description": "Fuga debajo del lavatorio en Comas. Lo necesito hoy.",
    "posting_type": "gig",
    "offer_kind": "service",
    "category": "simple",
    "location_type": "onsite",
    "country": "Perú",
    "city": "Lima",
    "currency": "PEN",
    "skills_required": ["Gasfitero"],
    "contact_phone": "+51987654321",
    "contact_whatsapp": true
  }'

Respuesta (201)

{
  "id": "9b2e…",
  "title": "Necesito gasfitero por fuga de agua en el baño",
  "status": "active",
  "posting_type": "gig",
  "city": "Lima",
  "country": "Perú",
  "created_at": "2026-09-08T15:04:05.000Z",
  "reach": { "shown": 418, "scope": "oficio_ciudad", "matching": 418, "notified": 120 }
}

reach dice cuántos profesionales del oficio en esa ciudad coinciden y cuántos fueron avisados. Confirma al usuario que su pedido quedó publicado y que los profesionales le van a escribir al teléfono que dejó.

Campos

titleObligatorio, 6 a 200 caracteres. Qué necesita el cliente, en sus palabras.
descriptionOpcional, hasta 2000 caracteres. Detalle, distrito o zona, cuándo lo necesita.
posting_type / offer_kindSiempre "gig" y "service": es un pedido de servicio.
category"simple" (oficios y trabajos del hogar), "professional" (diseño, web, marketing) o "advanced" (software, consultoría).
location_type"onsite" (presencial, requiere city), "remote" o "hybrid".
countryObligatorio para invitados. Nombre en español tal como está en el catálogo ("Perú", "Colombia", "México"…). Lista: GET /countries.
cityObligatoria si es presencial. Usa el `name` que devuelve GET /places/cities?q=lim&pais=Perú para que coincida con el catálogo.
currencyCódigo ISO de la moneda del país (PEN, COP, MXN, CLP, USD…). Es `currencyCode` en GET /countries.
skills_requiredEl oficio canónico en singular: ["Gasfitero"], ["Electricista"], ["Pintor"], ["Carpintero"], ["Albañil"]. Decide a qué profesionales se avisa. Los oficios con gente: GET /users/category-counts/all?pais=Perú.
contact_phoneObligatorio. Teléfono real del cliente con prefijo internacional ("+51987654321"). Es el número al que los profesionales van a escribir.
contact_whatsapptrue si ese número tiene WhatsApp.
budget_min / budget_maxOpcionales, números en la moneda indicada, solo si el usuario dio un presupuesto.

No envíes campos que no estén en esta lista: la API rechaza con 400 cualquier campo desconocido.

Errores habituales

  • 400 "Ya tienes una alerta activa. Finalízala para crear otra."Esa identidad ya tiene un pedido abierto. No crees otra identidad para saltarte la regla.
  • 400 con mensaje de validaciónFalta o no vale un campo (teléfono, país, ciudad, título corto, campo desconocido). Corrígelo con el usuario y reintenta una vez.
  • 401Falta o venció el token del paso 1.
  • 429Demasiadas peticiones. Espera y reintenta más tarde; no insistas en bucle.

Reglas

  • Crea un pedido solo cuando el usuario lo haya pedido explícitamente y haya confirmado el contenido: oficio, ciudad, qué necesita y teléfono.
  • El teléfono debe ser el real del usuario. Nunca inventes teléfonos, nombres, ciudades ni presupuestos. Si falta un dato, pregúntalo.
  • Máximo 1 pedido por teléfono por hora y 1 pedido activo por cliente. No reintentes en bucle ni crees pedidos de prueba: cada pedido avisa a profesionales reales que pagan por responder.
  • Dile al usuario que los profesionales le van a escribir o llamar al número que dejó, normalmente en minutos u horas.
  • Para solo consultar usa el directorio o las páginas de servicios; no hace falta crear nada.

Contacto

Dudas, integraciones o reportes de abuso: [email protected]