handshake Confianza
webhook Para desarrolladores

Publica en Confianza desde tu propia web

Una API key, una llamada HTTP. Cada publicación que crees desde tu sitio aparece en confianza.world para tus vecinos, con tu reputación al lado, y si quieres se difunde también en las redes de Confianza (Instagram, Facebook, Telegram).

1

Crea tu clave

En Ajustes → Publicar desde tu web. Necesitas el email verificado. La clave empieza con cw_ y se muestra una sola vez: guárdala como variable de entorno.

2

Llama a la API

POST https://confianza.world/api/v1/posts con el header Authorization: Bearer cw_… y un JSON con el título y la descripción.

3

Listo

La publicación queda en tu vitrina, la ven los vecinos cercanos y, con difundir: true (el valor por defecto), sale en las redes de Confianza con una tarjeta generada automáticamente.

lock

La clave es como tu contraseña. Úsala solo desde un servidor (una función de Netlify, tu backend, un script): nunca la pongas en el JavaScript de tu página, porque cualquiera podría copiarla y publicar en tu nombre. Si se filtra, revócala en Ajustes y crea otra.

Ejemplo con curl

curl -X POST https://confianza.world/api/v1/posts \
  -H "Authorization: Bearer cw_TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Pan amasado de campo, todos los sábados",
    "description": "Horneado en la mañana. Retiro en Villa Alemana o delivery en la comuna.",
    "category": "productos",
    "suggested_credits": 20,
    "image_url": "https://misitio.cl/fotos/pan.jpg",
    "difundir": true
  }'

Respuesta 201 Created con la publicación, su url y el estado de la difusión por red.

Ejemplo: función serverless en Netlify

Guarda la clave como variable de entorno CONFIANZA_API_KEY en tu sitio de Netlify y crea netlify/functions/publicar.js. Tu página llama a /.netlify/functions/publicar; la clave nunca sale del servidor.

// netlify/functions/publicar.js
export default async (request) => {
  const { title, description, image_url } = await request.json();

  const respuesta = await fetch("https://confianza.world/api/v1/posts", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.CONFIANZA_API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ title, description, image_url, category: "servicios" })
  });

  return new Response(await respuesta.text(), {
    status: respuesta.status,
    headers: { "Content-Type": "application/json" }
  });
};

Lo mismo sirve en Vercel, Cloudflare Workers, WordPress (con wp_remote_post) o cualquier backend: es un POST con JSON.

Campos de una publicación

CampoTipoQué es
titletextoObligatorio. Hasta 140 caracteres.
descriptiontextoDetalle, precio en pesos si aplica, cómo contactarte. Puede incluir el link a tu web.
categorytexto Una de: ayuda comunidad delivery eventos informacion productos servicios . Por defecto servicios.
pedidobooleanotrue si buscas algo en vez de ofrecerlo. Por defecto false.
suggested_creditsenteroCréditos C sugeridos para el intercambio. Opcional.
latitude, longitudedecimalDónde se ofrece. Si no los mandas, se usa la ubicación de tu perfil.
visibility_radius_kmdecimalRadio en km en que aparece a los vecinos. Por defecto 5.
image_urlURLImagen pública (jpg, png, webp o gif, hasta 8 MB). La descargamos y queda en la publicación y en la tarjeta de redes.
difundirbooleanoPublicar también en las redes de Confianza. Por defecto true al crear.
statustextopublished (por defecto), draft, paused, closed.

Todos los endpoints

GET /api/v1/meQuién eres para la API. Sirve para probar la clave.
GET /api/v1/postsTus publicaciones (las últimas 100), con el estado de difusión de cada una.
POST /api/v1/postsCrea una publicación.
GET /api/v1/posts/:idUna publicación tuya (acepta id o slug).
PATCH /api/v1/posts/:idEdita campos, o cambia status a paused / closed cuando ya no esté disponible.
DELETE /api/v1/posts/:idElimina la publicación.
  • Errores en JSON: { "error": "…", "detalles": [ … ] } con códigos 401 (clave inválida), 403 (email sin verificar), 422 (datos inválidos), 429 (demasiadas solicitudes).
  • Límites: 300 solicitudes por hora por clave, y 30 publicaciones nuevas por hora.
  • Las publicaciones creadas por API siguen las mismas reglas de la comunidad que las demás: se pueden reportar y moderar igual.