Recaudo Docs

Calendar

Events

Create and manage your Recaudo events from your own site: webinars, workshops, courses or meetings. Each published event has its registration page at recaudo.app/e/{your-account}/{event}, with the same fields you see in the dashboard.

GET /v1/events List your events
POST /v1/events Create an event
GET /v1/events/{id} Get an event
PATCH /v1/events/{id} Update an event
DELETE /v1/events/{id} Delete an event
GET /v1/events/{id}/registrations List who registered

Create an event

Body
{
    "name": "Webinar: mantenimiento preventivo",
    "description": "Sesión en vivo con preguntas al final.",
    "location_type": "online",
    "format": "webinar",
    "frequency": "one_time",
    "date": "2026-11-18",
    "start_time": "19:00",
    "end_time": "20:30",
    "meeting_url": "https://meet.example.com/abc-defg-hij",
    "max_attendees": 150,
    "status": "published",
    "custom_fields": [
        {
            "label": "Puesto",
            "type": "select",
            "required": true,
            "options": [
                "Dirección",
                "Operación",
                "Ventas"
            ]
        },
        {
            "label": "Ciudad",
            "type": "text",
            "required": true
        }
    ]
}
Field Type Required Description
name string Yes Event name. The page slug is built from it.
location_type string Yes online, presencial (in person), hibrido (hybrid) or on_demand.
frequency string Yes one_time (single date), recurring (repeats) or evergreen (no date, always available).
date date Depends Date (YYYY-MM-DD), today or later. Required except for evergreen.
start_time string Depends Start time (HH:MM, 24 h). Required except for evergreen.
end_time string No End time (HH:MM), after the start.
format string No webinar, demo, taller (workshop), conferencia (conference), reunion (meeting) or otro (other).
description string No Text of the event page (up to 5,000 characters).
status string No draft (default) or published. When updating, also cancelled or completed.
location string No Address or venue, for in-person events.
latitude number No Venue latitude, to show the map.
longitude number No Venue longitude, to show the map.
meeting_url url No Live session link (Zoom, Meet, Teams).
content_url url No Link to the recording or material, for on_demand.
image_url url No Cover image (public URL).
max_attendees integer No Maximum capacity (1 to 10,000). Empty means unlimited.
requires_payment boolean No true if registration is paid.
price number Depends Price in decimals. Required when requires_payment is true.
currency string No 3-letter ISO currency (default MXN).
is_invitation_only boolean No true to hide the event from your public listing.
recurrence_rule object Depends Required for recurring: {"pattern": "weekly|biweekly|monthly", "end_date": "YYYY-MM-DD", "occurrences": 2-52}.
custom_fields array No Extra questions on the registration form (up to 30).
  • custom_fields: list of {label, type, required, options}. type can be text, email, tel, number, select or textarea. For select, options is a list ["A", "B"] or comma-separated text.
  • The response returns the event with id, slug, public_url (the registration page), registrations_count and available_spots.

Update, delete and list

  • PATCH /v1/events/{id} changes only the fields you send. Sending custom_fields replaces the whole list.
  • DELETE /v1/events/{id} deletes the event and its page stops being available. Registrations are kept.
  • GET /v1/events accepts status, search (by name), upcoming=true (today onward), limit and page.

Event registrations

GET /v1/events/{id}/registrations returns each registered person: attendee_name, attendee_email, attendee_phone, status (registered, paid, attended, cancelled, no_show), amount_paid, custom_data (answers to your questions, with their label) and url_params (UTM of where they came from). Filter with status, limit and page.

Was this page helpful? Thanks for letting us know.
Esc