testivora/Automations/Webhooks y API
Concept · Start here

Webhooks and API

Testivora has two ways to connect to your tools: webhooks to react in real time, and a REST API to read and write on demand. This guide explains which one to reach for.

Read time · ~5 min
The two surfaces
Webhooks = Testivora notifies you (push). The API = you ask Testivora (pull). Most automations use one or the other; some use both. Both live under Settings and require the Growth or Agency plan.
01

Webhooks — to react in real time

A webhook is an HTTPS URL of yours that Testivora POSTs to the moment something happens. Register it in Settings → Webhooks → New endpoint, pick the events, and save; you get a whsec_… secret to verify the signature. There are three events: testimonial.created (a new testimonial arrives), testimonial.approved (you approve it), and testimonial.deleted (it's removed). Every POST arrives with this envelope — the testimonial lives under data:

json
{
  "id": "evt_3hF2bQ...",
  "object": "event",
  "event": "testimonial.approved",
  "version": "1.0",
  "created": "2026-06-03T01:00:00.000Z",
  "attempt": 1,
  "data": {
    "id": "j97...",
    "type": "text",
    "status": "approved",
    "rating": 5,
    "text": "Cerré 3 clientes en una semana.",
    "featured": false,
    "tags": ["onboarding"],
    "author": {
      "name": "Ana López",
      "title": "Coach",
      "company": "Acme",
      "photo_url": "https://...",
      "social": "https://instagram.com/ana"
    },
    "video": null,
    "created_at": "2026-06-03T00:59:50.000Z",
    "published_at": "2026-06-03T01:00:00.000Z"
  }
}
The id (evt_…) is stable across retries: use it to dedupe. For testimonial.deleted, data = { id, object: "testimonial", space_id, deleted: true }.
02

The REST API — to read and write on demand

When you want to query your data on your own schedule (not wait for an event), use the REST API. Create an API key in Settings → API (it starts with tv_live_…) and send it as a Bearer token. The base is https://api.testivora.com. Reading testimonials is the most common call; you can also create and edit them:

bash
# Lista los testimonios de un espacio
curl https://api.testivora.com/v1/testimonials?space_id=spc_123 \
  -H "Authorization: Bearer tv_live_..."

# Crear o actualizar también van por la misma base:
#   POST  /v1/testimonials          (crea uno)
#   PATCH /v1/testimonials/{id}      (edita uno)
#   GET   /v1/spaces  /v1/walls  /v1/account
Available endpoints: /v1/testimonials (GET/POST/PATCH), /v1/spaces, /v1/walls and /v1/account. Full docs at /docs/api.
03

Which one do I use?

Use webhooks when your action is a reaction to an event: tag a contact in your CRM, fire a Slack alert, append a row to a sheet the instant a testimonial comes in. It's push — no asking required. Use the API when you decide the moment: show testimonials on your own site, sync your database every night, export everything for a report. It's pull, on your terms. Simple rule: reacting to something that just happened? webhook. Pulling data when it suits you? API.

Plan required
Both webhooks and the API are available only on the Growth and Agency plans. If you don't see these sections under Settings, check your plan.
Next step
To wire up webhooks without code, follow the tool recipes (n8n, Zapier, Make) at /docs/automate. For the full REST API reference, go to /docs/api.